即使运行,也无法连接到MySQL

时间:2013-04-29 08:56:42

标签: php mysql terminal connection

这让我抓狂!我的Mac OS X Lion上有MySQL偏好设置面板,也可以从终端启动和停止它。 mysql从终端工作,我可以连接到数据库,但是当我从PHP源代码执行它时,它无法连接。它昨晚工作但现在没有,我不知道为什么。以下是一些细节:

  • 我告诉php.ini在正确的目录中查找mysql.sock

  • 我还将mysql的socket中的my.cnf变量设置为正确的路径。

  • 为了确保,我在mysql套接字(/tmp/mysql.sock)的默认目录中创建了一个符号链接,以链接到/var/tmp/mysql.sock中的套接字文件。

  • 当我从首选项窗格中停止MySQL,并尝试从终端启动它时,它会显示“成功!”但我无法在终端中使用命令mysql

任何人都可以从这种搞砸的情况中得到任何结果吗?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:

好的,所以我不知道为什么,但我的配置有差异。即使我在my.cnf文件中设置了socket变量,当我启动mysql服务器时,它总是寻找套接字的不同位置。

的my.cnf

[mysqld]
socket=/var/tmp/mysql.sock

[client]
socket=/var/tmp/mysql.sock

我仍然收到错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)。请注意它仍然在寻找/tmp/mysql.sock

找到这个link后,我意识到我的mysql服务器从未在/usr/local/mysql/my.cnf中读取我的配置文件。

这是我从mysqladmin命令得到的:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

解决方案:我在我的主文件夹中创建了一个符号链接

ln -s /usr/local/mysql/my.cnf ~/.my.cnf

谢谢!问题解决了:))