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

警告: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.


阿晨1998
浏览 581回答 3
3回答

繁星点点滴滴

出于某种原因,OSX上的MySQL获取所需套接字文件的位置有点错误,但幸运的是,解决方案就像设置一个符号链接一样简单。您可能有一个套接字(以零长度文件的形式出现)/tmp/mysql.sock或/var/mysql/mysql.sock,但一个或多个应用程序正在另一个位置寻找它。使用以下命令查找:ls&nbsp;-l&nbsp;/tmp/mysql.sock&nbsp;/var/mysql/mysql.sock与其移动套接字,编辑配置文件,还要记住将编辑好的文件保存在本地,远离路径正确的服务器,只需创建一个符号链接,以便Mac找到所需的套接字,即使它找错了位置!如果你有/tmp/mysql.sock但不是/var/mysql/mysql.sock然后.。cd&nbsp;/var&nbsp;sudo&nbsp;mkdir&nbsp;mysql sudo&nbsp;chmod&nbsp;755&nbsp;mysql cd&nbsp;mysql sudo&nbsp;ln&nbsp;-s&nbsp;/tmp/mysql.sock&nbsp;mysql.sock如果你有/var/mysql/mysql.sock但不是/tmp/mysql.sock然后.。cd&nbsp;/tmp ln&nbsp;-s&nbsp;/var/mysql/mysql.sock&nbsp;mysql.sock您将需要创建目录和链接的权限,因此,如果有必要,只需在上面的命令前面加上sudo即可。

红颜莎娜

我也犯了这个错误,但只能通过建议来解决。这里.概括地说,使用:127.0.0.1而不是:localhost原因是“localhost”是MySQL驱动程序的一个特殊名称,它使用UNIX套接字连接到MySQL,而不是TCP套接字。

紫衣仙女

我也有同样的问题,我就是这样解决的:我有这个,但没用:$con&nbsp;=&nbsp;mysql_connect('localhost',&nbsp;'root',&nbsp;'1234');我做了这件事,它起了作用:$con&nbsp;=&nbsp;mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock',&nbsp;'root',&nbsp;'1234');我没有使用MySQL服务器,而是直接连接到Unix套接字。为我工作过。
打开App,查看更多内容
随时随地看视频慕课网APP