这让我抓狂!我的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
。
任何人都可以从这种搞砸的情况中得到任何结果吗?
答案 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
谢谢!问题解决了:))