Skip to content
Tags

,

Linux – Permitindo acesso remoto num servidor MySQL

14 fevereiro 2008

OBS: Testado com o MySQL 5!

O Mysql por padrão ao ser instalado numa máquina, não está configurado para permitir acesso remoto, somente local, por parte do usuário, então para habilitar seu uso seja de qual for a máquina, faz-se os seguintes procedimentos:

Como root no terminal do linux digite:
nano /etc/mysql/my.cnf
Agora altere a seguinte linha..
bind-address = 127.0.0.1
..para..
bind-address = 0.0.0.0
Agora reinicie o serviço mysql com:
/etc/init.d/mysql restart
Entre no prompt do mysql com:
mysql --user=root --password=suasenha
Então digite o seguinte comando:
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'suasenha';
Esse comando é bem explicativo, ele garante (GRANT) todos (ALL) os privilégios de acesso a todos (*.*) os databases do banco, ao (TO) usuário (‘root’) em todas as máquinas (‘%’) usando a senha do usuário root (IDENTIFIED BY ‘suasenha’). Traduzindo em miúdos, você acessa tudo no banco com o usuário root em qualquer máquina remota.

Obs: Se quiser dar acesso somente a uma maquina específica troque ‘%’ pelo ip da máquina, por exemplo, dar acesso somente a máquina 192.168.0.2, ficaria assim o comando:
GRANT ALL ON *.* TO 'root'@'192.168.0.2' IDENTIFIED BY 'suasenha';
Obs2: Onde estiver escrito suasenha, troque pela senha do usuário root.

Agora pode testar conectar-se ao banco de outra máquina que você terá acesso.

Abraços!

From → Linux

50 Comentários
  1. Deckard permalink

    A dica está corretissima e funciona para acessar um banco de dados mysql 5 com as ferramentas de administração do mysql AB para windows… Grato e continue o ótimo trabalho em seu site… parabéns.

  2. Miguel permalink

    Parabéns pela dica, muito boa e funciona perfeitamente. Apenas uma correção, Grant = Concede.

    Abraço e continue o ótimo trabalho.

  3. Nilson permalink

    Valeu Miguel…

    Você está corretissimo, não sou muito bom em traduzir textos, vivo esquecendo as palavras tanto de uma lingua quanto de outra.

    abração

  4. sigma permalink

    Funciona perfeitamente. Já estava procurando esta solução a semanas.
    Valeu.

  5. Na verdade o comando correto é:

    GRANT ALL ON *.* TO root@’%’ IDENTIFIED BY ‘SUASENHADEROOT’;

  6. Nilson permalink

    Desculpe Adriano, se você olhar na documentação verá que a sintaxe não está errada:
    http://dev.mysql.com/doc/refman/5.1/en/grant.html

    abraço

  7. Mauricio permalink

    Valeu cara…
    Muito bom, me ajudou muito!
    Abraços!

  8. Parabéns, a dica funcionou perfeitamente. Obrigado!

  9. Edy_jf permalink

    O Adriano tem razão, a query certa é GRANT ALL ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘suasenha‘;

    Vida longa ao MYSQL!

  10. Edy_jf permalink

    Digo, GRANT ALL ON *.* TO root@’%’ IDENTIFIED BY ‘SUASENHADEROOT’;

  11. Angelo permalink

    Tanto faz ‘root’ ou root, aq nao funcionou tanto com ou sem aspas simples.

  12. Duff permalink

    Cara, ótimo, perfeito ! Muito obrigado mesmo !!

  13. @Tacioandrade_ permalink

    Cara, muito obrigado pelo artigo, você salvou um bom tempo meu para um mini curso que iria palestrar e teria que instalar o mysql em diversas maquinas sem necessidade pois não estava conseguindo fazer esta instalação de forma correta.

    Porem uma coisa que poderia ser adicionada seria onde fica o my.cnf no Windows (eu uso Linux apenas, porem muitos usuários windows poderiam se beneficiar também.

    Abraço.

  14. sergio gurgel permalink

    Funcionou filé.

  15. Samara permalink

    Para eu dar acesso remoto há uma faixa de ip específica interna eu colocaria em bind-adress=192.168.100.0 ?
    Já tentei colocar GRANT ALL ON *.* TO ‘root’@’192.168.100.%′ IDENTIFIED BY ‘suasenha‘;
    mas não consegui.
    Você sabe se tem algum comando ou o grant mesmo que faz direto no mysql sem ter q usar o bind???
    Obrigada

  16. Cristiano Fischer permalink

    Bom dia.
    Estou tentando acessar meu servidor MySql de uma palicacao local em meu computador.
    Já fiz as alteracoes sugeridas no arquivo de configuracao do mysql e ja dei os grants necessarios. No entanto, continuo com a mensagem de “Can’t conect to MySql server”

    Terias uma dica, Nilson?
    Obrigado

    • Que tipo de aplicação? como ela acessa o banco?

      • Cristiano Fischer permalink

        Não entendi bem o que queres dizer com “tipo de aplicação”. Mas é uma aplicação desktop, que utiliza o conector ODBC próprio do MySQL.

        Obrigado pela atenção.

    • Executaste o comando “GRANT ALL….” ?
      Ele retornou algum erro?
      Estás usando o Mysql5?

      Uma forma de verificar se o banco está escutando é dar um telnet no ip do servidor e na porta 3306, ex: telnet 192.168.0.1 3306

      Veja se o telnet estabelece uma conexão.

      • Cristiano Fischer permalink

        Sim. Os grants já foram dados.
        Quanto ao telnet, realmente nao conecta. Ele diz: “Não foi possível abrir conexão com host na port 3306”

        Cheguei a pensar que talvez fosse criar uma NAT no Router, mas aí ja seria impossivel, pois nao tenho acesso a este tipo de recurso.

    • Então já não é problema de permissão e sim de acesso ao banco.
      Provavalmente você precisa fazer um redirecionamento da porta 3306 no seu firewall.

      • Cristiano Fischer permalink

        É, isso tinha me ocorrido. O problema é que a empresa onde esta o server nao vai querer fazer isso. Pelo menos eu acho que nao.
        Caro Nilson, muitissimo obrigado pela tua atençao.

        Um abraço,
        Cristiano Fischer.

  17. Wallace permalink

    Muito boa sua dica, salvou meu dia.
    Estava a alguns dias tentando resolver um problema e achei a solução aqui.
    Valeu

  18. Neto permalink

    cara eu fiz isso, mas agora nao consigo acessar com o usuario root local, direto da maquina, recebo o erro 1045

  19. pessoal descobri uma coisa.. em algumas distribuições Ex suse, o caminho do my.cnf é em \etc\my.cnf e nao tem essa linha de “bind-address” consegui resolver essa problema indo no Yast na int grafica mesmo, e adiona o serviço mysql no firewall, assim vc consegue acessar via administrator admin ou outro client.

  20. Everson permalink

    Muito bom o post, resolveu o meu problema.

    Grato

  21. vlw carinha salvou minha vida + 1 vez

  22. Boa tarde a todos, eu só consegui conectar remotamente utilizando estes comandos

    nano /etc/mysql/my.cnf

    Comentei a linha que representava o IP

    Depois

    $ mysql -u root -p
    Enter minha senha:

    mysql> use mysql

    mysql> GRANT ALL ON *.* to root@’192.168.1.4′ IDENTIFIED BY ‘minha senha’;

    mysql> FLUSH PRIVILEGES;

    Conectei 100%

    Obrigado pelo o post, que me ajudou muito!

  23. cara quando eu coloco o grant all… meu msql fica assim:
    mysql> GRANT ALL ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘root‘;
    ‘>

    • Alessander, isso é algum problema na formatação do wordpress, o comando é esse mesmo, o que está dando erro são as aspas, quando colar o comando, apaga essas aspas e digita a aspa simples ‘ que deverá funcionar. Aqui testei e deu certo.

      GRANT ALL ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘root’;

  24. Rosival permalink

    Cara muito bom parabéns deu certo!!!

  25. Realmente, post de 2008 e eu visualizando no final de 2013…

    Ta de parabéns…
    Não só me ajudou muito como deixei nos favoritos e indiquei!
    😉

    VlW!!

  26. Bruno Souza permalink

    Salvasse minha vida!! Obrigado! =)

  27. Cara.. dica perfeita. Vlw!

  28. Obrigado pela ajuda, nossa sabe Deus o quanto estive procurando por essa solução.

  29. TACIO FERNANDES permalink

    EU TROCO O BIND-ADDRESS, MAS COMO EU FAÇA PARA SALVAR NO TERMINAL?

  30. Funcionou PERFEITAMENTE! Eu não conseguia me conectar ao MySql via SSH (remoto) e BATATA funcionou! VALEU!!

  31. octavio narvaz permalink

    Funcionou perfeitamente no MySQL 5.6.
    Thanks a lot!

  32. Gostei do POST, Parabéns!

  33. Juliano Gomes permalink

    Desculpe a minha ignorancia, mas depois de colocar o grant oq faço? Usei CTRL+D e ele só mostra BY, volta para o terminal, reinicio mas continuo sem conseguir acessar. Da uma luz ai parceiro. obrigado.

Trackbacks & Pingbacks

  1. How to: Instalação do MySQL no CentOS « Bigualinux – Informação ao seu alcance
  2. Linux – Permitindo acesso remoto num servidor MySQL | www.sergiogurgel.eti.br | e-mail sergio@sergiogurgel.eti.br
  3. Configurando acesso do MySQL através do uniPaaS « BLOG – Magic Software Brasil
  4. Configurando acesso do MySQL através do Magic xpa – Blog Magic Brasil
  5. Thunder-Boy » Blog Archive » Habilitando acesso remoto ao servidor Mysql
  6. Linux – Permitindo acesso remoto num servidor MySQL

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: