Como permitir a conexão remota ao mysql

Eu instalei a MySQL Community Edition 5.5 na minha máquina local e quero permitir conexões remotas para que eu possa me conectar a partir de uma fonte externa.

Como posso fazer isso?

Solução

Isso é permitido por padrão no MySQL.

O que está desativado por padrão é o acesso remoto `root'. Se você quiser habilitar isso, execute este comando SQL localmente:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

E então encontre a seguinte linha e **comente-a*** no seu arquivo my.cnf, que normalmente vive em /etc/mysql/my.cnf em sistemas Unix/OSX. Em alguns casos a localização do arquivo é /etc/mysql/mysql.conf.d/mysqld.cnf).

Se é um sistema Windows, você pode encontrá-lo no diretório de instalação do MySQL, normalmente algo como C:\Program Files\MySQL\MySQL Server 5.5\ e o nome do arquivo será my.ini.

Modificar linha

 bind-address = 127.0.0.1

para

 #bind-address = 127.0.0.1

E reinicie o servidor MySQL (Unix/OSX, e Windows) para que as mudanças tenham efeito.

Comentários (27)

No meu caso, eu estava tentando me conectar a um servidor remoto mysql no sistema operacional centralizado. Depois de passar por muitas soluções (concedendo todos os privilégios, removendo os ip bindings, permitindo a ligação em rede) o problema ainda não estava sendo resolvido.

Como se viu, enquanto procurava por várias soluções, deparei-me com iptables, o que me fez perceber que a porta mysql 3306 não aceitava conexões.

Aqui está uma pequena nota sobre como eu verifiquei e resolvi este problema.

  • Verificar se a porta está aceitando conexões:
telnet (mysql server ip) [portNo]
  • Adicionando a regra da tabela ip para permitir conexões na porta:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • Isso não seria recomendado para ambiente de produção, mas se seus iptables não estiverem configurados corretamente, adicionar as regras pode não resolver o problema. Nesse caso, o seguinte deve ser feito:
serviço iptables stop

Espero que isto ajude.

Comentários (0)

Se o seu processo de servidor MySQL está a ouvir no 127.0.0.1 ou ::1 apenas então você não será capaz de se conectar remotamente. Se você tem uma configuração de bind-address em /etc/my.cnf esta pode ser a fonte do problema.

Você também terá que adicionar privilégios para um usuário que não seja da área de localização.

Comentários (2)