sql >> Databáze >  >> RDS >> Mysql

PDOException SQLSTATE[HY000] [2002] Žádný takový soubor nebo adresář

Laravel 4: Změňte "host" v app/config/database.php soubor z "localhost" na "127.0.0.1"

Laravel 5+: Změňte "DB_HOST" v .env soubor z "localhost" na "127.0.0.1"

Měl jsem úplně stejný problém. Žádné z výše uvedených řešení mi nefungovalo. Problém jsem vyřešil změnou "host" v souboru /app/config/database.php z "localhost" na "127.0.0.1".

Nejste si jisti, proč "localhost" ve výchozím nastavení nefunguje, ale tuto odpověď jsem našel v podobné otázce vyřešené v příspěvku symfony2. https://stackoverflow.com/a/9251924/1231563

Aktualizace: Někteří lidé se ptali, proč tato oprava funguje, takže jsem na toto téma trochu prozkoumal. Zdá se, že používají různé typy připojení, jak je vysvětleno v tomto příspěvku https://stackoverflow.com/a /9715164/1231563

Problém, který zde vyvstal, je, že "localhost" používá UNIX socket a nemůže najít databázi ve standardním adresáři. Nicméně "127.0.0.1" používá TCP (Transmission Control Protocol), což v podstatě znamená, že běží přes "místní internet" na vašem počítači, což je v tomto případě mnohem spolehlivější než UNIX socket.



  1. Dotaz Android SQLite, kde sloupec není prázdný a není prázdný

  2. sql se připojí jako Vennův diagram

  3. Jak zacházet s volitelnou hodnotou vrácenou dotazem pomocí bedny postgres?

  4. ScaleGrid PostgreSQL na cloudové infrastruktuře VMware