Um dos meus clientes entrou em contato comigo para um problema de servidor vinculado entre o SQL Server e o MySQL Server. Como trabalho principalmente com o SQL Server, foi divertido instalar e conectar o MySQL Server. Enquanto eu estava tentando simular o problema e queria criar um servidor vinculado. Neste blog, aprenderíamos como corrigir o erro de conexão MySQL [MySQL][ODBC 5.3(w) Driver] O host 'IP' não tem permissão para se conectar a este servidor MySQL.
Eu instalei o MySQL Server em um servidor e forneci a senha do usuário root. Quando eu estava tentando me conectar ao MySQL Server usando ODBC.
Assim que cliquei no teste, vejo o erro abaixo.
O IP mencionado na mensagem de erro é o IP do cliente que está tentando se conectar. A mensagem de texto é a seguinte:
Falha na conexão
[MySQL][ODBC 5.3(w) Driver]O host ‘IP’ não tem permissão para se conectar a este servidor MySQL:
Eu nunca vi esse erro ao trabalhar com o SQL Server, então não tinha ideia sobre esse erro. Quando eu estava pesquisando eu aprendi abaixo.
Por padrão, o MySQL não permite que clientes remotos se conectem ao banco de dados MySQL.
A maneira mais rápida de verificar isso é a seguinte. Se verificarmos a tabela mysql.user, há uma entrada para o usuário 'root' com o host 'localhost'.
Então, precisamos fornecer permissão para conectar ao MySQL Server a um cliente.
Solução/Solução
Primeiro, certifique-se de que não seja um problema de firewall.
Como discutimos anteriormente, é um problema com permissões. Podemos então dar permissão usando o comando.
Use mysql; GRANT ALL ON *.* to root@'x.x.x.x' IDENTIFIED BY 'your-root-password';
Você também pode usar o MySQL Workbench para fazer isso. A captura de tela abaixo informa as etapas a serem seguidas. Igual ao comando, precisamos fornecer nome de usuário, senha e IP na tela gráfica.
Espero que este blog ajude. Após as alterações acima, quando você tenta se conectar ao banco de dados mysql a partir deste cliente remoto (demos o IP/nome do host), você não deve mais receber a mensagem de erro “Host não tem permissão para conectar-se a este servidor MySQL”. Também podemos usar % para permitir todos os hosts, mas não prefiro essa opção.
Eu não sou um especialista em MySQL, então sinta-se à vontade para comentar e deixe-me saber se existem maneiras melhores.