Skip to content

Access denied for user Illuminate\Database\QueryException

As vezes temos esse tipo de mensagem de erro no Laravel quando estamos tentando acessar nossa base de dados informada junto ao .env que fica na raiz da aplicação inteira (me refiro a raiz do Laravel), temos que nos certificar de alguns pontos e abaixo cito os mais comuns para SANAR esta mensagem de erro:

1 – O banco de dados está criado?
2 – O usuário do banco de dados está criado?
3 – O Usuário possui permissões para logar-se junto ao banco de dados? (Ele é OWNER no Banco ou possui permissões de conectar-se ao banco)
4 – TENTE informar nos campos de LOGIN e SENHA as credenciais com aspas duplas, por exemplo, “LOGINDB” e a senha “PASSWORDDB”, no caso sendo loginbd e passwordbd informações alegóricas (fictícias aqui).
O ponto 4 deve de fato sanar o problema.


Observação:
Em sistemas DEBAIN BASED (Ubuntu, Zorin… etc) a parte de Auth do mysql (mariadb) mudou um pouco de uns tempos para cá, ressaltando e fortalecendo a parte de segurança, isso implica que você pode se deparar com o cenário de erro de login e senha por falta de permissões, e até para testes simples você precisar usar sudo para usar o comando mysql afim de permitir que ele possa validar suas credenciais no shell do Gnu/Linux. Isso é bom e ruim, acaba dificultando bastante na praticidade do sistema, no entanto, inibe a ação de pessoas com más intenções! Um detalhe que deve ser levado em consideração são as PERMISSÕES DE PASTAS E ARQUIVOS que seu Laravel possui. PHP operando em CGI (suExec/FPM) normalmente VAI EXIGIR permissões de chmod 755 para pastas e 644 para arquivos, e normalmente (debian based) você vai precisar que esses arquivos e pastas tenham como dono o www-data e o grupo dos arquivos www-data. (dependendo da distribuição isso gira como apache2 o usuário e apache2 o grupo OU apache o user e apache no group)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.