开发者社区 问答 正文

警告:mysql_connect():[2002]中没有这样的文件或目录(试图通过unix:///t

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

昨天一切正常,现在突然出现标题错误。

当我使用浏览器运行脚本(安装了XAMPP)时,该脚本起作用,但是Terminal拒绝连接至数据库。

这是我要连接的文件(当我不包含此文件,但随后它没有连接到数据库时,脚本将起作用):

应该可以,因为它可以与我的浏览器一起使用。

我在终端上使用的命令是php scriptname.php。

展开
收起
保持可爱mmm 2020-05-10 19:19:13 533 分享 版权
1 条回答
写回答
取消 提交回答
  • 由于某种原因,OS X上的mysql弄错了所需套接字文件的位置,但是值得庆幸的是,解决方案就像设置符号链接一样简单。

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

    ls -l /tmp/mysql.sock /var/mysql/mysql.sock 无需移动套接字,编辑配置文件,并且必须记住将编辑后的文件保留在本地且远离路径正确的服务器,只需创建一个符号链接即可,即使Mac放在错误的位置,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即可。来源:stack overflow

    2020-05-10 19:19:25
    赞同 展开评论