SQLSTATE[HY000] [2002] 没有这样的文件或目录

2022-08-30 17:59:50

我正在尝试在OS X上运行一个laravel项目。我用自制软件安装了MySql。我尝试在谷歌上搜索为什么我得到这个错误:

SQLSTATE[HY000] [2002] No such file or directory

当我尝试做

php artisan migrate

我看到的大多数答案都说php和MySql无法相互通信。我一直试图看看我哪里出错了,因为我认为我关注了以前关于它的帖子,但它仍然不起作用。我创建了一个页面,只是这样做:

<?php
    phpinfo();
?>

我看到这些类型的东西:在“配置”区域中,我看到:

'--with-mysql-sock=/tmp/mysql.sock' '--with-mysqli=mysqlnd' '--with-mysql=mysqlnd' '--with-pdo-mysql=mysqlnd' '--enable-pcntl' '--enable-zend-signals' '--enable-dtrace'

加载的配置文件:

/usr/local/etc/php/5.4/php.ini

如果我,我确实看到了mysql.sock。ls /tmp

在该 php.ini 文件中,我设置了以下行:pdo_mysql.default_socket=/tmp/mysql.sock mysql.default_socket = /tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock

然后在 /usr/local/Cellar/mysql/5.6.16/my.cnf 中,我添加了以下行:

socket = /tmp/mysql.sock

我确实重新启动了apache,并检查了mysql是否正在运行。除了php和mysql连接之外,我没有看到任何其他建议。我认为我的系统上有两个版本的php,因为当我安装mcrypt或其他我不记得的东西时,它安装了另一个php版本。但是当我查看phpinfo的输出时,我正在编辑相应的php.ini文件。我不知道我是否还缺少另一件作品。有什么想法吗?谢谢


答案 1

我遇到了类似的错误。我正在使用MAMP,解决我的问题是:

  1. 在 /var/mysql 中创建符号链接(如果目录不存在,请创建该目录)
  2. cd /var/mysql && sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock

答案 2

对于在XAMPP上寻找解决方案的用户(在Mac OS X上测试和工作),

打开终端并创建一个符号链接:

sudo mkdir /var/mysql
cd /var/mysql
sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

推荐