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

2022-08-30 05:54:49

我相信我已经成功地将我的(非常基本的)站点部署到fortrabbit,但是一旦我连接到SSH运行一些命令(例如或),我就会收到一条错误消息:php artisan migratephp artisan db:seed

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

在某些时候,迁移必须有效,因为我的表在那里 - 但这并不能解释为什么它现在不适合我。


答案 1

拉拉维尔 4:将文件中的“host”从“localhost”更改为“127.0.0.1”app/config/database.php

拉拉维尔 5+:将文件中的“DB_HOST”从“本地主机”更改为“127.0.0.1”.env

我有完全相同的问题。上述解决方案都不适合我。我通过将/app/config/database.php文件中的“host”从“localhost”更改为“127.0.0.1”来解决这个问题。

不知道为什么“localhost”在默认情况下不起作用,但我在symfony2帖子中解决的类似问题中找到了这个答案 https://stackoverflow.com/a/9251924/1231563

更新:有些人问为什么这个修复程序有效,所以我对这个主题做了一些研究。似乎他们使用不同的连接类型,如本文所述 https://stackoverflow.com/a/9715164/1231563

这里出现的问题是“localhost”使用UNIX套接字,在标准目录中找不到数据库。但是,“127.0.0.1”使用TCP(传输控制协议),这基本上意味着它通过计算机上的“本地互联网”运行,在这种情况下比UNIX套接字可靠得多。


答案 2

错误消息指示已尝试通过套接字进行MySQL连接(不支持)。

在Laravel(工匠)的背景下,您可能希望使用不同/正确的环境。例如:(或任何环境)。请参阅此处php artisan migrate --env=production


推荐