为了账号安全,请及时绑定邮箱和手机立即绑定

警告:MySQL_CONNECT():[2002]没有这样的文件或目录

警告:MySQL_CONNECT():[2002]没有这样的文件或目录

阿晨1998 2019-07-03 13:51:42
警告:MySQL_CONNECT():[2002]没有这样的文件或目录(试图通过unix:/tmp/mysql.sock连接)我正在尝试用我的Apple上的终端连接MySQLDB(用PHP)。昨天它工作得很好,现在我突然得到了标题上的错误。当我使用浏览器运行它(我已经安装了XAMPP)时,脚本可以工作,但是终端拒绝连接到DB。下面是我所包含的用于连接的文件(当我不包括这个文件时,脚本可以工作,但是它没有连接到DB):<?php     mysql_connect("localhost", "root", "") or die(mysql_error());     mysql_select_db("FNB1C_data") or die(mysql_error());?>这应该是可行的,因为它适用于我的浏览器。我在终端使用的命令是php scriptname.php.
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

出于某种原因,OSX上的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即可。


查看完整回答
反对 回复 2019-07-03
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

我也犯了这个错误,但只能通过建议来解决。这里.

概括地说,使用:

127.0.0.1

而不是:

localhost

原因是“localhost”是MySQL驱动程序的一个特殊名称,它使用UNIX套接字连接到MySQL,而不是TCP套接字。


查看完整回答
反对 回复 2019-07-03
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

我也有同样的问题,我就是这样解决的:

我有这个,但没用:

$con = mysql_connect('localhost', 'root', '1234');

我做了这件事,它起了作用:

$con = mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', '1234');

我没有使用MySQL服务器,而是直接连接到Unix套接字。为我工作过。


查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 577 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信