Corrigir “Error Establishing a Database Connection“ para MySQL/MariaDB
O erro “error establishing a database connection“ ocorre quando o MySQL ou MariaDB não consegue estabelecer a conexão entre o aplicativo e o banco de dados. Geralmente, isso se deve a credenciais incorretas, um servidor de banco de dados parado ou problemas de configuração.
O que está por trás da mensagem “error establishing a database connection”
A mensagem “error establishing a database connection” (em português “Não foi possível estabelecer conexão com o banco de dados”) indica que um aplicativo, como um site em PHP, não conseguiu estabelecer uma conexão com o banco de dados MySQL ou MariaDB. As causas comuns são credenciais inválidas, como um nome de usuário ou senha incorretos, um servidor de banco de dados que não está em execução ou configurações de servidor incorretas. Problemas de rede, como portas bloqueadas ou informações de host erradas, também podem desencadear a mensagem de erro. Em sistemas de gerenciamento de conteúdo como WordPress, o erro é exibido diretamente quando o banco de dados não está acessível. Geralmente, bloqueia o acesso ao site inteiro, pois os conteúdos não podem ser carregados ou armazenados.
Como corrigir “error establishing a database connection” no MySQL/MariaDB
Se não foi possível estabelecer conexão com o banco de dados, isso pode ter uma série de razões. Verifique as soluções a seguir passo a passo para descobrir por que a conexão está falhando no seu caso.
Solução 1: verifique se o MySQL/MariaDB está em execução
Se o MySQL ou o MariaDB não estiverem em execução, scripts e sites não conseguem se conectar com o banco de dados. Em um servidor Linux, você pode verificar se o MySQL está em execução com o comando:
ps -aux | grep mysqlIsso retorna uma lista dos processos em execução que contêm “mysql” no nome. A lista inclui o comando que você acabou de executar. Se o MySQL estiver em execução, ela também inclui o processo do MySQL.

Se o MySQL/MariaDB não estiver em execução, você verá apenas seu comando grep listado.
Inicie o MySQL/MariaDB com os seguintes comandos:
# Ubuntu
systemctl start mysql
systemctl start mariadb
# CentOS
systemctl start mysqld
systemctl start mariadbCertifique-se de usar o nome de usuário e a senha corretos. Ambas as informações são definidas ao criar o banco de dados MySQL. Além disso, você deve configurar o nome de host correto.
Solução 2: verifique a conexão com o banco de dados
Assim que souber que o MySQL/MariaDB está em execução, o próximo passo é se conectar a partir da linha de comando com o comando:
mysql -u root -pVocê deve ser solicitado a inserir a senha do usuário root. Por padrão, a senha para o acesso root é a mesma que a senha root inicial do seu servidor.
Se você alterar a senha do usuário root do servidor, a senha do usuário root do MySQL não será alterada.
Depois de inserir a senha, você deve estar no cliente MySQL/MariaDB. Um cliente MySQL, por exemplo, se parece com isto:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 9.4.0 Homebrew
Copyright (c) 2000, 2025, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>Se você tiver problemas para estabelecer uma conexão MySQL com outro nome de usuário e senha, execute este teste uma segunda vez e substitua root pelo outro nome de usuário.
Solução 3: verifique o nome de usuário do MySQL/MariaDB
Se você inserir credenciais incorretas, receberá um erro como este:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)Certifique-se de que tanto o nome de usuário, que você vê na solicitação, quanto a senha que você digitou estão escritos corretamente. Observe que o nome de usuário diferencia maiúsculas de minúsculas, ou seja, Root não é o mesmo que root.
Transforme compartilhamentos, curtidas e posts salvos em vendas! Comece a vender seus produtos nas mídias sociais sem o trabalho de ter que criar e manter um site!
- Ativação fácil
- Flexível
- Suporte 24 horas
Vale a pena verificar se você está usando a ortografia correta e a capitalização certa para o nome de usuário. Para listar todos os usuários do MySQL/MariaDB, faça login como root no cliente de linha de comando com o comando:
mysql -u root -pEm seguida, liste todos os usuários do MySQL e seus hosts com o comando:
select host, user from mysql.user;Isso mostrará o nome de usuário exatamente como foi criado. Além disso, na coluna Host, você verá o local de onde o usuário tem permissão para se conectar.
Solução 4: redefinir a senha do MySQL/MariaDB do usuário
Especialmente ao redefinir a senha do usuário root, é preciso ter cuidado. Preste atenção especial ao seguir as dicas a seguir para não excluir acidentalmente uma senha errada.
Se a grafia do nome de usuário também não for o problema, o erro establishing a database connection pode estar em uma senha inválida. Para redefinir a senha MySQL/MariaDB de um usuário, conecte-se ao cliente de linha de comando como root usando o comando:
mysql -u root -pEm seguida, redefina a senha do usuário correspondente com o comando:
ALTER USER 'myuser'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;Substitua new_password pela nova senha e myuser pelo nome de usuário.
Solução 5: certifique-se de que o usuário tenha as permissões corretas.
Se você tem certeza de que o nome de usuário e a senha estão corretos, o problema pode ser que o usuário não possua as permissões (Grants) adequadas para este banco de dados.
Para verificar as permissões (Grants) de um usuário, faça login no cliente de linha de comando como root com o comando:
mysql -u root -pEm seguida, exiba as permissões do usuário com o comando:
SHOW GRANTS FOR 'myuser'@'localhost';Substitua myuser pelo nome de usuário. Altere localhost pelo nome do host, se necessário.
Você deve receber uma lista de privilégios que o usuário possui para o respectivo banco de dados. Deve parecer algo assim:
+-------------------------------------------------------------+
| Grants for myuser@localhost |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO `myuser`@`localhost` |
| GRANT ALL PRIVILEGES ON `reviews`.* TO `myuser`@`localhost` |
+-------------------------------------------------------------+
2 rows in set (0,004 sec)Observe que este usuário possui todas as permissões para um banco de dados chamado reviews.
Se o usuário não tiver permissões atribuídas a um banco de dados, você verá algo assim:
+--------------------------------------------+
| Grants for myuser@localhost |
+--------------------------------------------+
| GRANT USAGE ON *.* TO `myuser`@`localhost` |
+--------------------------------------------+
1 row in set (0,001 sec)Observe que este usuário apenas possui as permissões USAGE em “.” e nenhuma permissão para bancos de dados. Isso pode causar o error establishing a database connection.
Solução 6: verificar a conexão com o banco de dados a partir da web
Mesmo que o MySQL ou MariaDB esteja rodando localmente, ainda podem surgir problemas no ambiente web. Um teste simples a partir do navegador ajuda a verificar exatamente essa conexão e a identificar possíveis problemas de acesso precocemente. Utilize um script simples para testar se o seu banco de dados aceita a conexão. Crie um arquivo chamado database-connection-test.php com o seguinte conteúdo:
<?php
$test_connect = mysqli_connect('localhost', 'root', 'password');
if (!$test_connect) {
die('Nao foi possivel estabelecer conexao com o banco de dados: ' . mysqli_connect_error());
}
echo 'Conexão bem-sucedida com o banco de dados.';
mysqli_close($test_connect);
?>Substitua a palavra password pela senha de root.
Coloque este arquivo no seu diretório web e depois acesse-o em um navegador. Se você conseguir conectar-se com o nome de usuário root e a senha, saberá que sua base de dados aceita conexões.
Se você tiver problemas ao estabelecer uma conexão MySQL/MariaDB com outro nome de usuário e senha, realize este teste novamente substituindo root pelo outro nome de usuário e password pela senha correspondente.
Certifique-se de excluir este arquivo assim que concluir seus testes.
Solução 7: verificar o firewall e as portas
Mesmo que o MySQL ou MariaDB estejam funcionando corretamente e as credenciais de acesso estejam corretas, um firewall pode bloquear a conexão. Por padrão, o MySQL utiliza a porta 3306 para conexões de entrada. Primeiro, verifique se a porta está aberta. Em um sistema Linux, você pode usar os seguintes comandos:
sudo netstat -tulnp | grep 3306
# Em sistemas com ufw (Ubuntu)
sudo ufw statusSe o firewall estiver bloqueando a porta, você pode liberá-la especificamente:
# Ubuntu com ufw
sudo ufw allow 3306/tcp
sudo ufw reload
# CentOS ou RHEL com firewalld
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reloadLembre-se de liberar a porta apenas para os endereços IP que realmente necessitam de acesso. Abrir para todos pode representar um risco de segurança. Depois de ajustar o firewall adequadamente, seu aplicativo deve estar novamente apto a estabelecer conexão com o banco de dados MySQL/MariaDB. Verifique novamente com o script de teste PHP ou diretamente pelo console.

