Ich glaube, ich habe meine (sehr einfache) Website erfolgreich auf Fortrabbit bereitgestellt, aber sobald ich mich mit SSH verbinde, führe ich einige Befehle wie php artisan migrate
oder php artisan db:seed< aus ;/code>), erhalte ich eine Fehlermeldung:
[PDOException] SQLSTATE[HY000] [2002] Keine solche Datei oder kein solches Verzeichnis
Irgendwann muss die Migration erfolgreich gewesen sein, weil meine Tabellen vorhanden sind – aber das erklärt nicht, warum es jetzt bei mir nicht funktioniert.
这个错误的最简单原因之一是MySQL服务器没有运行。所以首先要进行验证。如果它正在运行,请继续其他建议:
我遇到了完全相同的问题。以上解决方案都对我无效。我通过将/app/config/database.php文件中的"host"从"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(artisan)的上下文中,您可能希望使用不同的/正确的环境。例如:
php artisan migrate --env=production
(或任何其他环境)。请参见这里。