Mysql
 sql >> Database >  >> RDS >> Mysql

PDOException SQLSTATE[HY000] [2002] Nessun file o directory di questo tipo

Laravel 4: Cambia "host" in app/config/database.php file da "localhost" a "127.0.0.1"

Laravel 5+: Modifica "DB_HOST" nel .env file da "localhost" a "127.0.0.1"

Ho avuto lo stesso identico problema. Nessuna delle soluzioni di cui sopra ha funzionato per me. Ho risolto il problema modificando "host" nel file /app/config/database.php da "localhost" a "127.0.0.1".

Non sono sicuro del motivo per cui "localhost" non funziona per impostazione predefinita, ma ho trovato questa risposta in una domanda simile risolta in un post di symfony2. https://stackoverflow.com/a/9251924/1231563

Aggiornamento: Alcune persone hanno chiesto perché questa correzione funziona, quindi ho fatto un po' di ricerca sull'argomento. Sembra che utilizzino tipi di connessione diversi, come spiegato in questo post https://stackoverflow.com/a /9715164/1231563

Il problema che è sorto qui è che "localhost" utilizza un socket UNIX e non riesce a trovare il database nella directory standard. Tuttavia "127.0.0.1" utilizza TCP (Transmission Control Protocol), il che significa essenzialmente che funziona tramite "Internet locale" sul tuo computer essendo molto più affidabile del socket UNIX in questo caso.