O 2002 é diferente do 1045: aqui a aplicação nem chegou ao servidor da base de dados. Não houve recusa de palavra-passe, porque nunca houve conversa. As formas mais vistas são Can't connect to local MySQL server through socket '...' (2), Connection refused e Connection timed out. O que decide a cura é o endereço a que a aplicação tentou ligar-se.
Ler a mensagem
| A mensagem |
O que costuma ser |
| through socket ... (2) |
Ligação ao servidor local por um ficheiro (socket). Ou o serviço não está a correr, ou o caminho do socket não é o que a aplicação espera. |
| Connection refused |
Chegou à máquina, mas nada escuta naquela porta: o serviço está parado, ou a porta está errada. |
| Connection timed out |
O pedido perdeu-se pelo caminho. De fora de um servidor hospedagem partilhada, as portas 3306 e 5432 não estão abertas, por isso é o resultado normal de se ligar a partir de fora. |
| getaddrinfo failed / Name or service not known |
O nome do servidor não existe ou tem um erro de escrita. O host escreveu-se mal. |
Na conta de hospedagem, pela ordem
| 1 |
O host é localhost. Não é o endereço do site, nem o IP do servidor, nem o nome do servidor da antiga empresa. Quem trouxe o site de outro lado costuma trazer o host de lá no ficheiro de configuração. A lista de ficheiros está em onde cada aplicação guarda a ligação à base de dados.
|
|
| 2 |
Teste o phpMyAdmin. Se abre e vê as tabelas, a base de dados está viva e o defeito é da aplicação. Se o phpMyAdmin também não abre, e outros sites da conta falham ao mesmo tempo, o serviço está em baixo do nosso lado: não mexa em nada e abra um pedido.
|
|
Num VPS com a sua própria base de dados
Num VPS o servidor de base de dados é seu, e o 2002 quer quase sempre dizer que o serviço não está a correr. Veja o estado com systemctl status mariadb (em algumas instalações o serviço chama-se mysql). Se parou, as razões habituais são o disco cheio e a falta de memória, que o sistema resolve matando o processo maior; o registo journalctl -u mariadb conta o que aconteceu. Se o serviço corre e o erro fala de socket, o caminho que o PHP procura pode ser outro: o localhost liga por socket e o 127.0.0.1 liga pela porta, e experimentar o segundo desencalha muitos casos.
|
Ligações que falham “sem erro” são quase sempre uma porta fechada, não uma palavra-passe. Veja que portas estão abertas.
|
|
Já confirmou o host e o phpMyAdmin continua a abrir, mas o site não liga? Diga-nos o endereço do site e a mensagem exacta.
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 321,75 MT/mês (plano de 3 anos, com cupão) Ver planos |