¿Cómo configurar un servidor MySql para aceptar conexiones remotas?

16

Estoy instalando un servidor MySql en el escritorio de Ubuntu. Podría conectar MySql Query Browser cuando especifique el Server Hostnameas localhost, pero cuando lo reemplace por la IP de la máquina deja de funcionar (incluso si MySql Query Browser se ejecuta en la misma máquina).

Todo lo que he hecho hasta ahora es eliminar las iptables, pero parece que no tiene nada que ver con eso.

Aquí está el mensaje de error

No se pudo conectar al host '192.168.0.2'.

Error de MySQL Nr. 2003

No se puede conectar al servidor MySQL en '192.168.0.2' (111)

Haga clic en el botón 'Ping' para ver si hay un problema de red.

Aunque el ping está bien

Jader Dias
fuente

Respuestas:

22

Tendrá que vincular su mysqld a una IP diferente de 127.0.0.1.

Abra su my.cnf (/etc/mysql/my.cnf generalmente) y cambie la línea que dice

bind = 127.0.0.1

a cualquier IP que use su máquina para conectarse al mundo exterior. 0.0.0.0se une a todas las direcciones IP. No olvide reiniciar su mysqld después de ese cambio.

Halfdan
fuente
ahora tengo un error diferente: no se pudo conectar al host '192.168.0.2'. Error de MySQL Nr. 1130 El host 'whatever-vubuntu.local' no puede conectarse a este servidor MySQL
Jader Dias
user @ localhost y user @ <hostname> es diferente. Debe agregar el usuario para poder conectarse desde hosts remotos.
James
Este no es el problema. He hecho esto y sigo recibiendo el error.
Cerin
¿Debería ser eso bind-address?
Thomas Weller
2

Varios problemas potenciales más explicados aquí:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html http://dev.mysql.com/doc/refman/5.1/en /access-denied.html

Si desea otorgar todos los privilegios a todas las bases de datos, intente

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

Sin embargo, antes de hacerlo, asegúrese de tener un usuario en la base de datos "mysql" que tenga "Host" configurado en su dirección IP, en mi caso, mi IP aquí en casa. Por lo tanto, el usuario "joe" puede tener más de un registro, uno por cada IP desde la que pueda estar llamando. Para ver lo que ya tienes ahí:

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

En mi caso, resultó que mi usuario ahora tenía la IP correcta pero también faltaba la contraseña. Corté y pegué la contraseña (es hash o algo así) y esto resolvió mi problema particular de conexión remota:

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

Una cosa más, en my.cnf es posible que desee establecer "port = 3306" o cualquier puerto que planee usar.

PJ Brunet
fuente