O erro 1045 quer dizer uma coisa só: a ligação chegou à base de dados, e a base de dados recusou o par utilizador e palavra-passe. Não é um servidor em baixo nem uma porta fechada: é a credencial que não bate certo. Quase sempre resolve-se em dez minutos, desde que se procure pela ordem certa.
A mensagem completa traz duas pistas que valem ouro: Access denied for user 'abc_util'@'localhost' (using password: YES). O nome entre aspas é o utilizador que a aplicação usou, e o YES ou NO diz se enviou alguma palavra-passe.
As causas, da mais à menos provável
| O que a mensagem mostra |
A causa e a correcção |
| Utilizador sem o prefixo da conta (por exemplo util em vez de abc_util) |
No cPanel, nome da base e nome do utilizador levam o nome da conta à frente. Na aplicação vai o nome completo, tal como aparece em MySQL Databases. |
| using password: YES |
A palavra-passe enviada não é a deste utilizador. Alguém a mudou no cPanel e o ficheiro de configuração ficou com a antiga, ou a cópia veio de outro servidor com a de lá. |
| using password: NO |
A aplicação não enviou palavra-passe nenhuma: o campo está vazio, o ficheiro de configuração não foi lido, ou a variável de ambiente (.env) não existe neste sítio. |
| A palavra-passe tem aspas, $, # ou @ |
O carácter partiu a linha de código ou o endereço de ligação. Gere uma palavra-passe nova só com letras e algarismos, em vez de lutar com o escape. |
| O endereço depois do @ não é localhost |
A ligação não vem da própria conta. De fora, a porta da base de dados está fechada; veja Remote MySQL e o túnel SSH. |
Resolver, passo a passo
| 2 |
Confira o nome da base e do utilizador com o que o cPanel mostra em MySQL Databases, letra a letra, prefixo incluído. O servidor (host) é localhost.
|
|
| 3 |
Não adivinhe a palavra-passe: defina uma nova. Em MySQL Databases, na lista de utilizadores, escolha alterar a palavra-passe, gere uma e guarde-a. Cole exactamente essa no ficheiro, sem espaços a mais nas pontas.
|
|
| 4 |
Confirme que o utilizador está ligado à base. Em Add User To Database junte os dois e dê os privilégios. Sem esta ligação o erro muda para o 1044, descrito em Erro 1044.
|
|
| 5 |
Se tem SSH, prove as credenciais fora do site: mysql -u abc_util -p abc_base pede a palavra-passe e diz logo se entra. Se entra, o defeito está no ficheiro da aplicação e não na base.
|
|
E num VPS com a sua própria base de dados?
O erro Access denied for user 'root'@'localhost' é dos mais pesquisados. Em muitas instalações (Ubuntu e Debian, por exemplo) o utilizador root da base de dados não entra com palavra-passe: entra pelo sistema, com sudo mysql. Quem tenta uma palavra-passe inventada recebe o 1045. Num VPS estes comandos e a base de dados são seus; veja até onde vai o nosso apoio em até onde vai o nosso suporte.
|
Já refez o utilizador e a palavra-passe e o 1045 continua? Envie-nos a mensagem completa, com o nome do utilizador que ela mostra.
Abrir um pedido de suporte
|
PRODUTO RECOMENDADO Alojamento de sites com cPanel Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão) Ver planos |