Mac OSX 10.8 MySQL连接错误:localhost不起作用,127.0.0.1都可以

时间:2012-12-13 09:54:12

标签: php mysqli vhosts

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

在我的/ 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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

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

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

mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock

答案 2 :(得分:0)

使用MacPorts的MySQL,它可以使用这条路径:

mysql.default_socket = /opt/local/var/run/mysql56/mysqld.sock

答案 3 :(得分:0)

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

brew switch openssl 1.0.2s