Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PDOException SQLSTATE[HY000] [2002] Datei oder Verzeichnis nicht vorhanden

Laravel 4: Ändern Sie "host" in der app/config/database.php Datei von "localhost" nach "127.0.0.1"

Laravel 5+: Ändern Sie "DB_HOST" in der .env Datei von "localhost" nach "127.0.0.1"

Ich hatte genau das gleiche Problem. Keine der oben genannten Lösungen hat bei mir funktioniert. Ich habe das Problem gelöst, indem ich den „Host“ in der Datei /app/config/database.php von „localhost“ auf „127.0.0.1“ geändert habe.

Ich bin mir nicht sicher, warum "localhost" standardmäßig nicht funktioniert, aber ich habe diese Antwort in einer ähnlichen Frage gefunden, die in einem Symfony2-Beitrag gelöst wurde. https://stackoverflow.com/a/9251924/1231563

Aktualisierung: Einige Leute haben gefragt, warum dieser Fix funktioniert, also habe ich ein wenig zu diesem Thema recherchiert. Es scheint, als ob sie unterschiedliche Verbindungstypen verwenden, wie in diesem Beitrag erklärt https://stackoverflow.com/a /9715164/1231563

Das hier aufgetretene Problem ist, dass "localhost" einen UNIX-Socket verwendet und die Datenbank nicht im Standardverzeichnis finden kann. "127.0.0.1" verwendet jedoch TCP (Transmission Control Protocol), was im Wesentlichen bedeutet, dass es über das "lokale Internet" auf Ihrem Computer läuft und in diesem Fall viel zuverlässiger ist als der UNIX-Socket.