Como configurar um servidor MySql para aceitar conexões remotas?

16

Estou instalando um servidor MySql no desktop do Ubuntu. Eu poderia conectar MySql Query Browser a ele quando especificando o Server Hostname as localhost , mas quando eu o substituo pelo IP da máquina ele para de funcionar (mesmo se o MySQL Navegador de Consultas rodar na mesma máquina).

Tudo o que fiz até agora foi remover o iptables, mas parece que não tem nada a ver com isso.

Aqui está a mensagem de erro

Could not connect to host '192.168.0.2'.

MySQL Error Nr. 2003

Can't connect to MySQL server on '192.168.0.2' (111)

Click the 'Ping' button to see if there is a networking problem.

O ping está ok, embora

    
por Jader Dias 06.12.2009 / 17:47

3 respostas

22

Você terá que ligar o seu mysqld a um IP diferente do 127.0.0.1.

Abra seu arquivo my.cnf (/etc/mysql/my.cnf normalmente) e altere a linha que diz

bind = 127.0.0.1

para qualquer IP que sua máquina usa para se conectar ao mundo externo. 0.0.0.0 se liga a todos os endereços IP. Não esqueça de reiniciar o seu mysqld depois dessa mudança.

    
por 06.12.2009 / 17:53
5

Além da resposta halfdan, eu tive que executar o seguinte comando mysql:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON databasename.*
TO 'username'@'clientipaddress'
IDENTIFIED BY 'password'

Como aprendi em

link

    
por 06.12.2009 / 18:06
2

Vários mais problemas em potencial explicados aqui:

link link

Se você deseja conceder todos os privilégios a todos os bancos de dados, tente

grant all on *.* to 'joe'@'%';

No entanto, antes de fazer isso, certifique-se de ter um usuário no banco de dados "mysql" que tenha "Host" configurado para seu endereço IP - no meu caso, meu IP aqui em casa. Assim, o usuário "joe" pode ter mais de um registro, um para cada IP do qual ele possa estar chamando. Para ver o que você já tem aí:

use mysql;
select Host, User, Password from user where user='joe';'

No meu caso, meu usuário agora tinha o IP correto, mas a senha também estava faltando. Eu cortei a senha (é hash ou algo assim) e isso resolveu o meu problema de conexão remota:

update user set Password='5493845039485' where user='joe';

Só mais uma coisa, em my.cnf você pode querer definir "port = 3306" ou qualquer porta que você planeje usar.

    
por 22.03.2012 / 00:40