Laravel 4: Altere "host" noapp/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.