Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PDOException SQLSTATE[HY000] [2002] Nenhum arquivo ou diretório


Laravel 4: Altere "host" no app/config/database.php arquivo de "localhost" para "127.0.0.1"

Laravel 5+: Altere "DB_HOST" no .env arquivo de "localhost" para "127.0.0.1"

Eu tive o mesmo problema. Nenhuma das soluções acima funcionou para mim. Resolvi o problema alterando o "host" no arquivo /app/config/database.php de "localhost" para "127.0.0.1".

Não tenho certeza por que "localhost" não funciona por padrão, mas encontrei esta resposta em uma pergunta semelhante resolvida em um post do symfony2. https://stackoverflow.com/a/9251924/1231563

Atualização: Algumas pessoas perguntaram por que essa correção funciona, então eu pesquisei um pouco sobre o assunto. Parece que eles usam diferentes tipos de conexão, conforme explicado neste post https://stackoverflow.com/a /9715164/1231563

O problema que surgiu aqui é que "localhost" usa um soquete UNIX e não consegue encontrar o banco de dados no diretório padrão. No entanto, "127.0.0.1" usa TCP (Protocolo de Controle de Transmissão), o que essencialmente significa que ele é executado através da "internet local" em seu computador, sendo muito mais confiável do que o soquete UNIX neste caso.