Neste artigo rápido, você aprenderá como resolver o “ERRO 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 :24.10.96.5
- IP do servidor de banco de dados :24.10.96.6
Encontramos o erro ao testar a conexão de banco de dados de um de nossos servidores de aplicativos para um servidor de banco de dados, usando o mysql cliente como 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. Nesse 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 do localhost . Portanto, precisamos atualizar os hosts do usuário da seguinte maneira.
Execute o seguinte GRANT comando para habilitar o acesso MySQL para o usuário remoto de um host remoto. Certifique-se de substituir “10.24.96.6 ” com o endereço IP do sistema remoto e “database_password ” para a senha que você deseja “database_username " 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 dar a um usuário acesso remoto de todos os hosts em uma rede, use a sintaxe abaixo:
MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.%' IDENTIFIED BY 'database_password';
Depois de fazer as alterações acima, tente se conectar remotamente ao servidor de banco de dados MySQL mais uma vez. A conexão deve ser bem-sucedida, conforme mostrado na captura de tela 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.