我正在尝试在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
如果我ls /tmp
,我确实看到了mysql.sock。
在那个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
我DID重启apache,以及检查mysql是否正在运行。除了php和mysql连接之外,我还没有看到任何其他建议。我认为我的系统上有两个版本的php,因为当我安装mcrypt或其他我不记得的东西时,它安装了另一个php版本。但是当我查看phpinfo的输出时,我正在编辑相应的php.ini文件。我不知道是否还有另一件我遗失的文章。有什么想法吗?感谢
答案 0 :(得分:46)
我有类似的错误。我正在使用MAMP,解决了我的问题是:
答案 1 :(得分:9)
对于正在寻找XAMPP解决方案的用户(在Mac OS X上测试和使用过),
打开终端并创建符号链接:
sudo mkdir /var/mysql
cd /var/mysql
sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
答案 2 :(得分:6)
搜索后,我发现了这篇文章:
Setting up Laravel on a Mac php artisan migrate error: No such file or directory
我添加
'unix_socket' => '/tmp/mysql.sock’,
到我的mysql数组中的database.php,它工作正常。不确定为什么会起作用,但确实如此。
答案 3 :(得分:4)
我这样修好了。只需加一条线。
在laravel项目中
APP =&GT;配置=&GT; database.php中
更新
连接=&GT; MySQL的
严格添加以下行后
'unix_socket' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"
样品: -
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'unix_socket' => "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"
],
答案 4 :(得分:0)
这件事发生在我身边,我的应用程序(Laravel)昨天工作正常并且今天因此错误而丢弃(SQLSTATE [HY000] [2002]没有这样的文件或目录)。
在检查我的配置文件没有损坏后,我连接到我的控制面板(我正在使用VPS)并重新启动MySQL服务器。这就是诀窍,一切都恢复了。
答案 5 :(得分:0)
找到Ampps用户的解决方案:
我有同样的问题,我做了很多搜索,但直到我查看我的MySql配置文件后无法解决问题。
在我的配置文件中,套接字在第21行,路径为
“/Applications/AMPPS/var/mysql.sock”
在Ampps应用程序中,单击MySql选项卡,然后单击配置按钮。
您还可以在“/ Applications / AMPPS / mysql / etc”文件夹
中找到配置文件所以我只是添加了
'unix_socket'=&gt; '/Applications/AMPPS/var/mysql.sock',
到我在mysql数组中的database.php,它对我有用
主机线后。我已经使用localhost和127.0.0.1进行了测试,两者都有效
希望它也适合你。