php artisan migrate - SQLSTATE[HY000] [2002] No such file or directory

11 浏览
0 Comments

php artisan migrate - SQLSTATE[HY000] [2002] No such file or directory

我正在使用laravel的待办事项应用程序,但在php artisan migrate部分卡住了。我知道这个问题已经在这里发布了很多次,但我觉得我已经尝试了许多建议,但都没有起作用 - 将主机更改为localhost和127.0.0.1,为.env文件生成密钥,添加socket,强制迁移等。下面是我.env和数据库文件的截图供您参考。非常感谢您的帮助!

截图在这里

0
0 Comments

问题的原因是在使用Laravel 5.7.3和XAMPP for OS X时出现了"SQLSTATE[HY000] [2002] No such file or directory"的错误。解决方法是参考了一个Stack Overflow的帖子,作者Kyo的解决方案。

解决方法是在config/database.php文件的第49行进行更新。将代码修改为:

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

同时,也尝试了TechyTimo的解决方案,并且也成功解决了问题。但是从配置的角度考虑,将所有的配置都放在一个文件中会更好。

对于作者自己来说,他也希望尝试这个解决方案,因为他使用的是XAMPP,但是在他的系统中找不到mysql socket文件,他原本期望能够在/opt/lampp/var/mysql目录下找到它。

0
0 Comments

问题原因:

该问题是因为使用MAMP的缘故,MAMP不使用普通的UNIX Socket。

解决方法:

要解决这个问题,需要在数据库配置文件中进行以下更改,将unix_socket替换为如下内容:

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

此外,还可能需要运行以下命令:

php artisan cache:clear

以防之前已经缓存了配置文件。

如果以上方法无效,可以尝试techytimo的解决方案,即在.env文件中添加路径。

经过上述更改和缓存清除操作后,如果仍然出现错误信息--[PDOException] SQLSTATE[HY000] [2002] No such file or directory,则需要进一步检查其他可能的原因。

0
0 Comments

在laravel 5.5中使用MAMP时,遇到了与上述相同的问题。在我的database.php文件中,mysql指令下有以下代码行:

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

解决方法是在环境文件中添加缺失的DB_SOCKET选项:

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

0