我已经设法让我的安装全部搞砸了,因为我是一个新手,搞砸是我擅长的。
1)任何人都可以引用一组可靠的设置说明吗?
2)我可以通过macports卸载并从头开始(密码和所有)吗?我试过了,在卸载后一堆 mysql 目录卡住了,WTF!?
3) mysqld.sock 需要驻留在何处以及我需要应用哪些文件设置才能使其与 php5 和 apache2 配合使用?
它是在/tmp 还是在/opt/local/var/run/mysql5/?
我需要配置/opt/local/etc/php5/php.ini 吗?选择/本地/var/db/php5/mysql.ini?/opt/local/etc/mysql5/my.cnf?
4) 我已经运行 > sudo -u mysql mysql_install_db5。如果我再次运行它会搞砸我吗?
我运行 mysqladmin -u root password 'mypw' 并收到错误消息,说 mysql 无法通过套接字连接。那么这是否意味着我的密码现在已设置?有办法告诉我吗?
5) 密码语句的语法因博客而异。我的密码是“mypw”还是“mypw”(不带引号)? (我的密码实际上不是 mypw)
6) 启动和停止 mysql 的适当命令是什么?我不希望它在我的机器启动时启动。
谢谢 Jergason,这非常有帮助。
我真的很想与 mysql 的 macports 安装保持一致,因为它限制了我可以对我的机器造成的损坏。
所以现在悬而未决的问题是......
1) macports mysql 安装的默认套接字位置是什么?
2)启动和停止mysql的适当命令是什么?我不希望它在我的机器启动时启动。一些博客说使用 launchctl -load 其他人说 sudo/path/mysql_safe5。如果您没有设置密码(因为我不打算设置),您是否需要使用 -user -p 参数?
3) 使 macports mysql 工作所需的目录所有权和权限是什么。 macports 似乎没有设置任何这些。
Nerd
Check /tmp for the MacPorts mysql socket
没有帮助。如前所述,我知道/tmp 是套接字的默认位置。我的问题是,当我尝试启动 mysql 时,套接字没有在那里实现,也没有出现在/opt/local/var/run/mysql5/中。这告诉我我在启动 mysql 时遇到问题,这意味着设置有问题。可能是什么,我不知道。恐怕我不是天生就对这些事情有先验知识。
- 在 Snow Leopard 下使用 macports 安装 mysql5 时,套接字应该位于哪个特定目录中?
If you're using 5 different sites' tips on how to run mysql and you're surprised you've gotten lost … well, I'll just leave it at try to follow just one site at a time and back out all changes before going to the next.
没有帮助。我完全按照你的建议开始了。你认为我做了什么,混合和匹配 5 个博客的说明?这就是我询问干净卸载的原因。我想知道以前安装的状态更改是否会影响 future 的“干净”安装。
- What SPECIFIC blog 描述了在雪豹下使用 macports 确认正确安装 mysql5 的过程。
I think the only problem you're having with MacPorts mysql (what problem are you having??) is that it's got a socket where you don't expect it and it's using a default configuration.
没有帮助。我也是,看我原帖。我认为问题在于 mysql 如何启动(或未启动)。
- 您对如何解决问题有任何具体建议吗?
This should have been explained after the install was completed by MacPorts.
没有帮助。不是,或者我没看到,如果是的话。也许是因为我使用的是 Porticus。
-你可以再详细一点吗?在什么时候我应该看到什么消息?
Please see ${prefix}/share/doc/mysql5/ for ideas and/or contact the developer list. Also consider contacting the maintainer of the port; they likely know the most about it since they manage it.
没有帮助。 RTM,谷歌是你的 friend ,等等。是的,先去了那里。尽管我承认我可能忽略了一些东西,因为当我确定我的问题很简单时,当我有其他工作要做时,我不倾向于花几天时间阅读一些写得不好的文档。
我希望得到一些简单、集中的帮助,就像 Jergason 提供的那样。我(和其他阅读本文的人)感谢 Jergason 愿意传达他的知识,以加快人们对各种技术的学习过程。对他来说,这些知识是基本的,但对于新人来说,这可以节省大量时间。智能的真正标志是理解技术知识不是先验的,即使是基本的帮助也有很大帮助。再次感谢J-man。
最佳答案
我自己刚刚安装了 mysql5,因为这总是很痛苦,所以我注意到了我遵循的过程。这是在 Leopard 上完成的,但我想这个过程在 Snow Leopard 和 Lion 上是一样的。它没有回答所有原始问题,但至少它是一个指南。
安装Mysql
首先,安装mysql5服务器:
sudo port install mysql5-server
刚安装
mysql5
不安装服务器。注意控制台输出,它包括设置 macports 的说明。您可能希望将其复制并粘贴到文本文件中。以下内容以此为基础。
而不是
mysql5-server
,您可以使用诸如 mysql55-server
之类的端口, mysql56-server
, mariadb-server
或 percona-server
获取更新版本的 mysql 或 fork。如果这样做,请注意控制台输出,因为以下说明基于 mysql5-server
并且需要进行调整以使用正确的可执行文件和路径。如果这是新安装,请设置数据库:
sudo -u _mysql mysql_install_db5
这会输出一些通用指令,我认为这些指令并不完全适合 macports。在我看来,将 mysql5 作为守护程序加载的最佳方法是使用 macport 的方法:
sudo port load mysql5-server
除了启动 mysql5,这会永久加载它 - 它会在启动时运行。稍后停止此操作:
sudo port unload mysql5-server
如果您不想将其作为守护程序运行,则可以在命令行中运行它:
sudo /opt/local/lib/mysql5/bin/mysqld_safe
通过在命令行登录来检查它是否正在运行:
mysql5 -u root -p
默认情况下,密码为空,因此只需在出现提示时按 Enter。要设置 root 密码:
/opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'
设置 macports php 和 native php 安装的说明如下。
设置 Macports PHP
假设您已经安装并运行了 macports php。您需要安装
php5-mysql
(或类似 php54-mysql
的内容,取决于您使用的 php 版本):sudo port install php5-mysql
这将安装 mysql、mysqli 和 pdo 驱动程序。
现在看看你的
/opt/local/etc/php5
目录,如果您还没有 php.ini
配置文件复制任一 php.ini-development
或 php.ini-production
至 php.ini
.现在编辑 php.ini
并搜索要添加的适当行:pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
和:
mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
和:
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
如果您不想配置这些,您可以在连接时在 php 脚本中显式设置它们。
如果您在连接时遇到问题,您可能需要查看附近的其他设置,并与
php.ini-development
进行比较。和 php.ini-production
看看有什么变化。然后使用下面的脚本,或者类似的东西来测试你可以用php连接。
设置系统 PHP
OS X 的 php 内置了 mysql 和 mysqli 支持(但不是 pdo),所以你需要做的就是设置 macport unix 套接字。默认位置是
/opt/local/var/run/mysql5/mysqld.sock
.在 /etc/php.ini
中找到正确的位置(如果您还没有,请从 /etc/php.ini.default
复制它)添加:mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
和:
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
如果您不想配置这些,您可以在连接时在 php 脚本中显式设置它们。
测试脚本
这是一个用于检查它是否可以连接的 php 脚本。显然,您通常不会在 php 脚本中使用 root 帐户,因此您可能需要先创建另一个 mysql 帐户来测试连接。 PDO 连接不适用于 native php,因为它没有 PDO 驱动程序。
<?php
$username = 'root';
$password = 'correct horse battery staple';
/* Try mysql: */
$connection = mysql_connect('localhost', $username, $password);
if ($connection === FALSE) {
echo "Error connecting using mysql.\n\n";
echo "Error ".mysql_errno().": ".mysql_error()."\n\n";
}
else {
echo "Connected using mysql.\n\n";
mysql_close($connection);
}
/* Try mysqli: */
$connection = mysqli_connect('localhost', $username, $password);
if ($connection->connect_error) {
echo "Error connecting using mysqli:\n\n";
echo "Error ".$connection->connect_errno.": ".$connection->connect_error."\n\n";
}
else {
echo "Connected using mysqli.\n\n";
$connection->close();
}
/* Try pdo:
* Won't work for the version of php supplied with OS X. */
try {
$pdo = new PDO('mysql:host=localhost', $username, $password);
echo "Connected using PDO.\n\n";
$pdo = null;
}
catch(PDOException $e) {
echo "Error connecting using PDO:\n\n";
echo "Error ".$e->getCode().": ".$e->getMessage()."\n\n";
}
关于mysql - Snow Leopard下的Macports mysql5设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591978/