无法连接到Mac上的MySQL - 缺少mysql.sock文件

tch*_*ore 8 php mysql macos mysql-error-2002

大约一周前我在我的Mac OS 10.6上安装了MySQL,经过一些游戏,让它工作得很好.它与python MySQLdb集成,我也有Sequel Pro连接到数据库.但是,php不会访问服务器.甚至在我将一个php.ini文件添加到/ etc /并将其指向Sequel Pro使用的相同袜子之后:/tmp/mysql.sock.

但现在我根本无法访问本地服务器.据我所知,我的计算机上没有mysql.sock文件,不在/ tmp /或其他任何地方.

我可以从终端启动mysql服务器,但它会在一分钟后自动退出:

110425 17:36:18 mysqld_safe Logging to '/usr/local/mysql/data/dn0a208bf7.sunet.err'.
110425 17:36:18 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
110425 17:37:58 mysqld_safe mysqld from pid file /usr/local/mysql/data/dn0a208bf7.sunet.pid ended
Run Code Online (Sandbox Code Playgroud)

如果我尝试从命令行调用"mysql"(今天早些时候工作得很好):

ERROR 2002 (HY000): Can\'t connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)

PHP错误当然是类似的:

PHP Warning:  mysql_real_escape_string(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock)
Run Code Online (Sandbox Code Playgroud)

另外,我的mysql安装目录中没有"my.cnf"文件:/ usr/local/mysql.有一些my.cnf文件用于XAMPP附带的mysql安装.那些也有默认套接字列为'/tmp/mysql.sock',但我不得不手动更改它们.

有什么想法发生了什么?为什么修改php.ini文件也会为Sequel Pro带来变化?

小智 20

首先,我建议您使用自制软件在Mac上安装任何第三方库或工具.请访问:http://mxcl.github.com/homebrew/

否则,对于您的问题,您可以在Mac上搜索mysql套接字的位置,然后将其符号链接到/ tmp.

在您的终端尝试类似:

locate mysql | grep sock
Run Code Online (Sandbox Code Playgroud)

你会得到类似的东西:

/the/path/to/mysql.sock
Run Code Online (Sandbox Code Playgroud)

然后做 :

ln -s /the/path/to/mysql.sock /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)

这应该有效.

您还可以编辑php.ini文件以设置mysql套接字的正确路径.

希望这有帮助.


Dud*_*ira 5

我得到了一些类似的错误,最终到了这里.我使用的是OSX 10.9.5.这解决了我的问题(希望它有助于某人).

1)sudo mkdir/var/mysql

2)sudo ln -s /private/tmp/mysql.sock /var/mysql/mysql.sock

更多信息:http://glidingphenomena.blogspot.com.br/2010/03/fixing-warning-mysqlconnect-cant.html

谢谢!