Pesquisa de site

Como corrigir o ERRO 1130 (HY000): O host não tem permissão para se conectar a este servidor MySQL


Neste artigo rápido, você aprenderá como resolver o erro “ERROR 1130 (HY000): Host x.x.x.x não tem permissão para se conectar a este servidor MySQL” na implantação do banco de dados MySQL/MariaDB em um sistema Linux. Este é um dos erros comuns de conexão de banco de dados remoto encontrados pelos usuários.

Ambiente de teste:

  • IP do servidor de aplicativos: 10.24.96.5
  • IP do servidor de banco de dados: 10.24.96.6

Encontramos o erro ao testar a conexão do banco de dados de um de nossos servidores de aplicativos a um servidor de banco de dados, usando o cliente mysql conforme mostrado.

mysql -u database_username -p -h 10.24.96.6

O erro indica que o host 10.24.96.5 do qual o usuário do banco de dados está se conectando não tem permissão para se conectar ao servidor MySQL. Neste caso, temos que fazer algumas alterações no servidor de banco de dados para permitir que o usuário se conecte remotamente.

No servidor de banco de dados, temos que verificar o host do qual o usuário acima tem permissão para se conectar.

mysql -u root -p

Execute os seguintes comandos SQL para verificar o host do usuário:

MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

A partir da saída do comando, o usuário só tem permissão para se conectar ao servidor de banco de dados a partir do localhost. Portanto, precisamos atualizar os hosts do usuário da seguinte forma.

Execute o seguinte comando GRANT para habilitar o acesso MySQL para o usuário remoto a partir de um host remoto. Certifique-se de substituir “10.24.96.6 ” pelo endereço IP do sistema remoto e “database_password ” pela senha desejada “database_username > ”para usar:

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.5' IDENTIFIED BY 'database_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

Para fornecer a um usuário acesso remoto de todos os hosts de uma rede, use a sintaxe abaixo:

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.%' IDENTIFIED BY 'database_password';

Após fazer as alterações acima, tente conectar-se remotamente ao servidor de banco de dados MySQL mais uma vez. A conexão deve ser bem-sucedida conforme mostrado na imagem a seguir.

mysql -u database_username -p -h 10.24.96.6

Esperamos que esta solução tenha ajudado você a resolver seu erro de conexão remota do Mysql. Se tiver alguma dúvida, entre em contato conosco através do formulário de feedback abaixo.