我相信我已经成功地将我的(非常基本的)站点部署到 fortrabbit,但是一旦我连接到 SSH 来运行一些命令(例如 php artisan migrate 或 php artisan db:seed),我就会收到一条错误消息:
php artisan migrate
php artisan db:seed
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
在某些时候,迁移一定是有效的,因为我的表就在那里 - 但这并不能解释为什么它现在对我不起作用。
导致此错误的最简单原因之一是 MySQL 服务器未运行。所以先确认一下。如果它已启动,请继续执行其他建议:
我遇到了完全相同的问题。上述解决方案都不适合我。我通过将 /app/config/database.php 文件中的“主机”从“localhost”更改为“127.0.0.1”解决了该问题。
不知道为什么“localhost”默认不起作用,但我在 symfony2 帖子中解决的类似问题中找到了这个答案。 https://stackoverflow.com/a/9251924
更新: 有些人问为什么这个修复有效,所以我对这个主题做了一些研究。正如这篇文章中所述,他们似乎使用不同的连接类型 https://stackoverflow.com/a/9715164
这里出现的问题是“localhost”使用UNIX套接字,无法在标准目录中找到数据库。然而,“127.0.0.1”使用 TCP(传输控制协议),这本质上意味着它通过计算机上的“本地互联网”运行,在这种情况下比 UNIX 套接字可靠得多。
错误消息表明尝试通过套接字进行 MySQL 连接(不支持)。
在 Laravel(工匠)的上下文中,您可能想要使用不同/正确的环境。例如:php artisan migrate --env=product(或任何环境)。请参阅此处。
php artisan migrate --env=product
导致此错误的最简单原因之一是 MySQL 服务器未运行。所以先确认一下。如果它已启动,请继续执行其他建议:
我遇到了完全相同的问题。上述解决方案都不适合我。我通过将 /app/config/database.php 文件中的“主机”从“localhost”更改为“127.0.0.1”解决了该问题。
不知道为什么“localhost”默认不起作用,但我在 symfony2 帖子中解决的类似问题中找到了这个答案。 https://stackoverflow.com/a/9251924
更新: 有些人问为什么这个修复有效,所以我对这个主题做了一些研究。正如这篇文章中所述,他们似乎使用不同的连接类型 https://stackoverflow.com/a/9715164
这里出现的问题是“localhost”使用UNIX套接字,无法在标准目录中找到数据库。然而,“127.0.0.1”使用 TCP(传输控制协议),这本质上意味着它通过计算机上的“本地互联网”运行,在这种情况下比 UNIX 套接字可靠得多。
错误消息表明尝试通过套接字进行 MySQL 连接(不支持)。
在 Laravel(工匠)的上下文中,您可能想要使用不同/正确的环境。例如:
php artisan migrate --env=product
(或任何环境)。请参阅此处。