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?
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.
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.
telnet (mysql server ip) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
serviço iptables stop
Espero que isto ajude.
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.