Páginas

sexta-feira, 22 de novembro de 2013

[MySQL] - Habilitando acesso remoto ao servidor

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.

3 comentários:

  1. Ola amigo infelizmente meu freebsd versao 10
    não tem o arquivo my.cnf no diretorio /etc/mysql/my.cnf
    eu o encontrei em /usr/local/share/mysql/my.cnf
    e também não tinha a linha
    bind-address = 127.0.0.1

    eu peguei e adicionei no caso a linha
    bind-address = 0.0.0.0

    coloquei a permissão pelo SQL deu certinho


    mas não conseguir acessar de outra maquina pela rede
    será que o arquivo my.cnf que achei /usr/local/share/mysql/my.cnf
    está errado?
    ou tem ele em outro diretório, sou iniciante no freebsd, abraços

    ResponderExcluir
    Respostas
    1. Boa tarde Hugo,
      No freebsd a pasta padrão dos arquivos de exemplo do freebsd é "/usr/local/share/mysql" , já os arquivos que o banco realmente gerencia está localizado em "/var/db/mysql", provavelmente o arquivo my.cnf configurado lá deve sem o parâmetro "bind-address = 0.0.0.0". Configurando isso, vai funcionar tudo normalmente.

      Abs,
      Emerson

      Excluir
  2. Como eu verifico se um servidor permite acesso remoto?

    ResponderExcluir