php artisan migrate - SQLSTATE [HY000] [2002]没有这样的文件或目录

时间:2017-08-03 05:14:17

标签: laravel

我经历了laravel待办事项应用程序,并被困在php工匠迁移部分。我知道这个问题已经在这里发布了很多次但是我觉得我已经尝试了许多不起作用的建议 - 将主机更改为localhost和127.0.0.1,生成.env文件的密钥,添加一个套接字,强制迁移等。下面是我的.env和数据库文件的屏幕截图供您参考。非常感谢任何帮助!

screenshot here

3 个答案:

答案 0 :(得分:2)

因为你正在使用MAMP,有一些警告可能并不清楚,例如MAMP没有使用普通的UNIX套接字。

但要解决您的问题,您需要在数据库配置文件中执行以下操作,将unix_socket替换为:

'unix_socket'   => '/Applications/MAMP/tmp/mysql/mysql.sock',

您可能还必须运行:

php artisan cache:clear

请先修改配置文件。

答案 1 :(得分:1)

因为我使用MAMP所以有同样的问题。我在laravel 5.5上,所以我的database.php在mysql指令下有这一行:

'unix_socket' => env('DB_SOCKET', ''),

解决方案是添加环境文件中缺少的DB_SOCKET选项:

DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

答案 2 :(得分:0)

在Laravel 5.7.3和XAMPP for OS X(不是XAMPP-VM)上使用Laravel 5.7.3时,我遇到了同样的问题,并设法通过参考本post中的Kyo解决方案来解决了这个问题。

我更新了config / database.php中的第49行:

'unix_socket' => env('DB_SOCKET', ''),

使用

'unix_socket' => env('DB_SOCKET', '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'),

我也在上面尝试了TechyTimo的解决方案,这也对我有用。我认为使用此解决方案会更好,因为所有配置都保存在一个文件中。