2

我现在有一个 10.8 的新 MabBook,我正在尝试设置所有 Apache 和 MySQL 等。Apache 成功运行,包括虚拟主机。

在我的 /etc/hosts 中,我设置了所有本地主机,包括 127.0.0.1 localhost 等。

当我尝试连接到我的本地虚拟主机之一时,例如 alpensonne,我可以毫无问题地连接到 MySQL。如果我尝试将 MySQL 主机设置为 localhost,则会收到以下错误:

Database connection error (2): Could not connect to MySQL.

我知道错误 (2) 表示用户名或密码不正确,但它们很好。如果我连接

mysql -u root
SELECT password,host FROM user where user='root';

另外,我刚刚做了双重确定:

SET PASSWORD FOR 'root'@'localhost' = '';

localhost 是否有可能使用不同的 MySQL 套接字?也许它会尝试连接到不同的 MySQL?

4

4 回答 4

2

要详细说明@schurtertom的答案...

问题是mysql.default_socketPHP.INI 中的设置默认为与 MySQL 实际放置该文件的位置不同的位置。

无需编辑配置文件,而是在 PHP 正在查找的位置创建一个别名,通过运行以下两个命令连接到真正的 mysql.sock(无需重新启动):

mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
于 2014-10-18T03:28:20.180 回答
2

好的,我发现了错误...问题是,我忘记将 php.ini 文件更改为指向 mysql.default_socket ...我的 default_socket 设置为 /var/mysql/mysql.sock 所以我刚刚创建/tmp/mysql.sock 的符号链接,现在一切正常!:)

@shadyyx 感谢 MAMP 的提议,我当然知道这一点,但对 Windows 用户来说并不是 MAMP、XAMPP、LAMP 等的忠实粉丝,所以你可以使用 apache 而不是 IIS,但对于 Linux、Unix 和 Mac用户您可以使用 apache 服务器中的构建...因此无需使用其他第三方软件。你也依赖于 php 版本等。我更喜欢能够自己配置它。

于 2012-12-13T10:57:51.943 回答
0

使用 MacPorts 中的 MySQL,它适用于以下路径:

mysql.default_socket = /opt/local/var/run/mysql56/mysqld.sock
于 2014-10-05T21:24:43.620 回答
0

如果 MySQL 仍然没有连接,请运行:

brew switch openssl 1.0.2s
于 2020-06-08T19:18:18.470 回答