Erro 2002 no MariaDB: Entendendo e Resolvendo
O erro 2002 no MariaDB pode ser confuso, mas geralmente está relacionado a controle de acesso baseado em host. Descubra como identificar e resolver esse problema de forma segura. Aprenda a entender a mensagem de erro e como conceder acesso ao host correto.
Introdução
O MariaDB é um sistema de gerenciamento de banco de dados relacional de código aberto, amplamente utilizado em ambientes de produção. No entanto, ao administrar o MariaDB em um ambiente seguro, você pode enfrentar um erro confuso ao se conectar de um host remoto: ERROR 2002 (HY000). Esse erro pode parecer relacionado a problemas de TLS/SSL, mas na maioria das vezes, a causa raiz está no controle de acesso baseado em host, e não na criptografia.
O que Causa o Erro 2002?
O erro 2002 ocorre durante a fase de handshake do TLS, o que faz com que o MariaDB suprima a revelação completa dos detalhes do lado do servidor. Como resultado, o MariaDB detecta que o host do cliente não está autorizado, mas o TLS impede a verificação completa do erro, resultando em uma mensagem de erro genérica em vez de uma mensagem de acesso negado clara.
Cenários Comuns onde Esse Erro Acontece
Esse problema é frequentemente visto em ambientes com:
- Requisito de transporte seguro habilitado (require_secure_transport=ON)
- Clientes habilitados para TLS (--ssl / --ssl-mode=REQUIRED)
- Servidores de aplicativos ou contêineres remotos
- Instalações do MariaDB endurecidas (alinhadas com PCI DSS / SOC 2)
As causas típicas incluem:
- O endereço IP do host do cliente está faltando na tabela mysql.user
- O usuário existe apenas para localhost
- O firewall ou o endereço de bind não é o problema (frequentemente mal diagnosticado)
Passos para Resolver o Erro 2002
Passo 1: Confirmar que o Servidor é Acessível
Do host do cliente, verifique se o servidor do MariaDB é alcançável usando o comando:
nc -vz endereço-do-servidor 3306
Se isso for bem-sucedido, o problema não está na rede.
Passo 2: Inspecionar Permissões de Host do Usuário
Conecte-se localmente ao servidor do MariaDB e verifique as permissões de host para o usuário:
SELECT User, Host FROM mysql.user WHERE User = 'nome-do-usuário';
Um resultado típico problemático pode ser:
+---------+-----------+
| User | Host |
+---------+-----------+
| nome-do-usuário | localhost |
+---------+-----------+
Isso significa que as conexões remotas são explicitamente negadas, independentemente do TLS.
Passo 3: Conceder Acesso ao Host Correto
Para resolver o problema, você precisa conceder acesso ao host correto. Isso pode ser feito atualizando a tabela mysql.user para incluir o endereço IP do host do cliente ou criando um novo usuário com permissões para o host remoto.
Conclusão
O erro 2002 no MariaDB pode ser confuso, mas entender a causa raiz e seguir os passos certos pode ajudar a resolvê-lo de forma eficaz. Lembre-se de que a segurança é crucial, então certifique-se de conceder acesso apenas aos hosts necessários e de manter suas instalações do MariaDB atualizadas e endurecidas.






