我现在有一个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?
我希望有人可以帮助我。
答案 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