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.

Erro 2002 no MariaDB: Entendendo e Resolvendo
Um escritório de tecnologia com dispositivos e telas iluminados por luz azul neon, com circuitos e chips expostos, representando um ambiente de inovação e tecnologia. No centro, uma tela exibe uma mensagem de erro do MariaDB. Estilo: foto editorial de revista tech, cores vibrantes azul/roxo/verde neon, estética cyberpunk/moderna, sem pessoas. Aspect ratio 16:9, formato paisagem horizontal, resolução 1920x1080. - (Imagem Gerada com AI)

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.