Abrir acceso a MySQL desde equipos externos

Cuando trabajamos con MySQL es muy frecuente que tengamos que acceder al servidor para realizar desde equipos cliente operaciones con el mismo. Una solución muy frecuente en el mundo de la web, es ahorrarnos abrir conexiones y trabajar directamente desde dicho equipo, ¿cómo? Usando un software que se instale en el equipo servidor de base de datos y permita a la vez interactuar contra él mediante un interfaz web. Hablo de phpMyAdmin.

Sin embargo, en ocasiones, preferimos directamente conectarnos al servidor. Yo personalmente lo hago porque prefiero usar SQLyog Community sobre Wine antes que phpMyAdmin. ¿Cómo lo hacemos? Veamos:

Bind address

Lo primero es buscar en el fichero de configuración de MySQL y modificar la línea siguiente:

bind-address = 127.0.0.1

Por esta otra:

bind-address = TU_IP

Si indicamos 0.0.0.0 estamos dejando conectarnos desde cualquier dirección.

Dar permisos a nuestro usuario

La segunda parte viene derivada de dar permisos a nuestro usuario. ¿Cómo? Desde la consola de MySQL:

GRANT ALL PRIVILEGES
ON base_datos.*
TO ‘usuario’@'tu_IP'
IDENTIFIED BY 'tu_password';

Consideraciones a tener en cuenta:

  • Indicad la contraseña, si no lo hacéis, no podréis entrar con la que tenéis para entrar como usuarios en el propio servidor.
  • Si queréis entrar desde cualquier destino usad: TO ‘usuario’@’%’
  • Cuando queráis deshabilitar este permiso, tenéis que hacer la orden contraria, en lugar de GRANT, REVOKE
  • En lugar del nombre de la base de datos simplemente, podéis llegar a afinar a nivel de tabla.
  • O directamente permitir todas las bases de datos con un comodín: ON *.*
  • Si queréis afinar en privilegios mirad la orden GRANT
  • Podéis hacer esto con el interfaz gráfico de SQLyog