Howto: Habilitando acesso remoto ao servidor Mysql
Dica velha que de vez em quando é necessário relembrar, por isso vou deixar registrado aqui para não ter que ficar procurando no google sempre que precisar.
Executar todos os passos abaixo como root:
1 – Edite o arquivo:
/etc/mysql/my.cnf
2 – Altere a seguinte linha:
bind-address = 127.0.0.1
Deixando assim:
bind-address = 0.0.0.0
3 – Reinicie o Mysql
# /etc/init.d/mysql restart
4 – Vamos agora dar GRANT no usuário root, logue no mysql:
# mysql -u root -p
5 – Após se logar, digite o seguinte comando:
GRANT ALL ON *.* TO root@’%’ IDENTIFIED BY ‘sua_senha’;
Dessa forma você libera o acesso ao seu servidor Mysql vindo de qualquer máquina externa, caso queira liberar somente o acesso da sua máquina, é só verificar qual é seu IP e entrar com o comando:
GRANT ALL ON *.* TO root@’192.168.0.2′ IDENTIFIED BY ‘sua_senha‘;
6. Após isso, basta dar uma reiniciada novamente no Mysql e realiazar a conexão remota.
# /etc/init.d/mysql restart
====================================================
Caso você queira desfazer o acesso remoto é bem simples também.
1 – Altere a seguinte linha:
bind-address = 0.0.0.0
Deixando assim:
bind-address = 127.0.0.1
2. Logue no Mysql:
# mysql -u root -p
3. Delete todos os privilégios remotos:
DELETE FROM mysql.user WHERE User = ‘root’ AND Host = ‘%’;
FLUSH PRIVILEGES;
4. Reinicie o Mysql e pronto, não estará mais acessível remotamente.
Fontes:http://darkstrikerd.wordpress.com/
http://www.cyberciti.biz/
http://ptankov.wordpress.com/
Qual o risco de executar esse comando e parar de funcionar o servidor? não tenho domínio sobre o linux, e estou precisando estabelecer conexão ODBC mysql com o excel, através de um servidor existente no linux, que acusa que o IP não tem permissão para estabelecer conexão, logo acredito que essa solução resolva o meu problema, só estou um pouco quanto receioso para executa-la com medo de danificar algo na conexão ja existente.
Bem, isso não vai danificar seu banco, apenas irá permitir que você tenha acesso remoto. É inseguro deixar o acesso remoto com o usuário root, como no exemplo acima, no caso seria apenas para resolver uma demanda específica, o ideal é você liberar acesso remoto apenas para o usuario X que tem privilégio ao banco Y. Mas assim também funciona, só lembre de voltar ao normal após o uso.
Olá Boa Tarde segui todos os passos acima e não consigo conectar ao meu bd mysql Failed to connect to MySQL: Unknown MySQL server host ‘xxxxx’ (11). Tem alguma idéia do que seria?
Obrigado pela dica, ótimo post.
apenas um detalhe.
apos as alterações o mysql nao subiu, ‘Failed’.
somente parando e iniciando o servico que retornou.
# service mysql stop
# service mysql start
abraço
Vale lembrar que, no Ubuntu 16.04, o arquivo de configuração fica em:
/etc/mysql/mysql.conf.d/mysqld.cnf
Parabéns pelo artigo! (y)