sql >> Base de Datos >  >> RDS >> Mysql

PDOException SQLSTATE[HY000] [2002] No existe tal archivo o directorio

Laravel 4: Cambie "host" en app/config/database.php archivo de "localhost" a "127.0.0.1"

Laravel 5+: Cambie "DB_HOST" en .env archivo de "localhost" a "127.0.0.1"

Tuve exactamente el mismo problema. Ninguna de las soluciones anteriores funcionó para mí. Resolví el problema cambiando el "host" en el archivo /app/config/database.php de "localhost" a "127.0.0.1".

No estoy seguro de por qué "localhost" no funciona de forma predeterminada, pero encontré esta respuesta en una pregunta similar resuelta en una publicación de Symfony2. https://stackoverflow.com/a/9251924/1231563

Actualización: Algunas personas han preguntado por qué funciona esta solución, así que investigué un poco sobre el tema. Parece que usan diferentes tipos de conexión como se explica en esta publicación https://stackoverflow.com/a /9715164/1231563

El problema que surgió aquí es que "localhost" usa un socket UNIX y no puede encontrar la base de datos en el directorio estándar. Sin embargo, "127.0.0.1" usa TCP (Protocolo de control de transmisión), lo que esencialmente significa que se ejecuta a través de "Internet local" en su computadora, siendo mucho más confiable que el zócalo UNIX en este caso.