Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in

时间:2017-07-28
我正在尝试使用Apple上的终端(使用PHP)连接到我的MySQL数据库。昨天它工作正常,现在我突然得到标题中的错误。当我使用浏览器运行它时(我安装了XAMPP),脚本工作,但终端拒绝连接到数据库。

我正在尝试使用Apple上的终端(使用PHP)连接到我的MySQL数据库。

昨天它工作正常,现在我突然得到标题中的错误。

当我使用浏览器运行它时(我安装了XAMPP),脚本工作,但终端拒绝连接到数据库。

这是我包含连接的文件(当我不包含此脚本时,脚本可以工作,但它不会连接到DB):

<?php
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("FNB1C_data") or die(mysql_error());
?>

解决方法:

出于某种原因,OS X上的mysql获取所需套接字文件的位置有点不对,但幸运的是,解决方案就像设置符号链接一样简单。

您可能有一个套接字(显示为零长度文件)/tmp/mysql.sock/var/mysql/mysql.sock,但是一个或多个应用程序正在查找其他位置。找出这个命令:

ls -l /tmp/mysql.sock /var/mysql/mysql.sock

而不是移动套接字,编辑配置文件,并且必须记住将编辑后的文件保持在本地并远离路径正确的服务器,只需创建一个符号链接,以便Mac找到所需的套接字,即使它在错误的位置查找!

如果你有,/tmp/mysql.sock但没有/var/mysql/mysql.sock...

cd /var 
sudo mkdir mysql
sudo chmod 755 mysql
cd mysql
sudo ln -s /tmp/mysql.sock mysql.sock

如果你有,/var/mysql/mysql.sock但没有/tmp/mysql.sock...

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

您将需要创建目录和链接的权限,因此如果需要,只需在上面添加sudo命令。