Mysql
 sql >> Base de données >  >> RDS >> Mysql

PDOException SQLSTATE[HY000] [2002] Aucun fichier ou répertoire de ce type

Laravel 4 : Changez "host" dans app/config/database.php fichier de "localhost" vers "127.0.0.1"

Laravel 5+ : Changez "DB_HOST" dans le .env fichier de "localhost" vers "127.0.0.1"

J'ai eu exactement le même problème. Aucune des solutions ci-dessus n'a fonctionné pour moi. J'ai résolu le problème en changeant le "host" dans le fichier /app/config/database.php de "localhost" à "127.0.0.1".

Je ne sais pas pourquoi "localhost" ne fonctionne pas par défaut, mais j'ai trouvé cette réponse dans une question similaire résolue dans un message symfony2. https://stackoverflow.com/a/9251924/1231563

Mise à jour : Certaines personnes ont demandé pourquoi ce correctif fonctionnait, j'ai donc fait quelques recherches sur le sujet. Il semble qu'ils utilisent différents types de connexion, comme expliqué dans cet article https://stackoverflow.com/a /9715164/1231563

Le problème qui s'est posé ici est que "localhost" utilise un socket UNIX et ne peut pas trouver la base de données dans le répertoire standard. Cependant "127.0.0.1" utilise TCP (Transmission Control Protocol), ce qui signifie essentiellement qu'il passe par "l'internet local" sur votre ordinateur, étant beaucoup plus fiable que le socket UNIX dans ce cas.