Cómo permitir la conexión remota a mysql

He instalado MySQL Community Edition 5.5 en mi máquina local y quiero permitir conexiones remotas para poder conectarme desde una fuente externa.

¿Cómo puedo hacerlo?

Solución

Eso está permitido por defecto en MySQL.

Lo que está deshabilitado por defecto es el acceso remoto root. Si quiere habilitarlo, ejecute este comando SQL localmente:

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

Y luego busque la siguiente línea y coméntela en su archivo my.cnf, que normalmente vive en /etc/mysql/my.cnf en los sistemas Unix/OSX. En algunos casos la ubicación del archivo es /etc/mysql/mysql.conf.d/mysqld.cnf).

Si se trata de un sistema Windows, puede encontrarlo en el directorio de instalación de MySQL, normalmente algo así como C:\NArchivos de Programa\NMySQL\NMySQL Server 5.5 y el nombre del archivo será my.ini.

Cambie la línea

 bind-address = 127.0.0.1

a

 #bind-address = 127.0.0.1

Y reinicie el servidor MySQL (Unix/OSX, y Windows) para que los cambios surtan efecto.

Comentarios (27)

En mi caso estaba intentando conectarme a un servidor mysql remoto en cent OS. Después de pasar por un montón de soluciones (concesión de todos los privilegios, la eliminación de los enlaces de IP, la habilitación de la red) el problema todavía no se resuelve.

Mientras buscaba varias soluciones, me encontré con iptables, que me hizo ver que el puerto 3306 de mysql no aceptaba conexiones.

Aquí hay una pequeña nota sobre cómo comprobé y resolví este problema.

  • Comprobando si el puerto está aceptando conexiones:

telnet (ip del servidor mysql) [portNo]

  • Añadiendo regla de tabla ip para permitir conexiones en el puerto:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • No recomendaría esto para un entorno de producción, pero si su iptables no está configurado correctamente, añadir las reglas podría no resolver el problema. En ese caso se debe hacer lo siguiente:

service iptables stop

Espero que esto ayude.

Comentarios (0)

Si su proceso de servidor MySQL está escuchando en 127.0.0.1 o ::1 solamente, entonces no podrá conectarse remotamente. Si tiene una configuración de bind-address en /etc/my.cnf este podría ser el origen del problema.

También tendrás que añadir privilegios para un usuario que no sea localhost.

Comentarios (2)