Cómo establecer una conexión MySQL remota

LinuxMySQL

En esta guía vamos a ver cómo te puedes conectar de forma remota a MySQL tanto de forma directa como utilizando un túnel SSH.

Cómo conectarse a MySQL con un túnel SSH

Establecer un túnel SSH es un método seguro. Con él túnel SSH podrás redirigir un puerto de tu ordenador local a un servidor MySQL remoto. Además, todo el tráfico MySQL estará encriptado gracias al uso del protocolo SSH. Es también útil cuando, por ejemplo, el puerto de MySQL está cerrado en el servidor.

Para establecer el túnel SSH sigue estos pasos según cuál sea tu sistema operativo:

Establece el túnel SSH desde Windows

Para establecer el túnel SSH desde Windows necesitarás un cliente SSH como puede ser Putty, que puedes descargar desde aquí. También puedes utilizar Git Bash u otros clientes como MobaXterm. Si quires, puedes consultar la guía de instalación de Git for Windows, cuyo instalador ya incluye Git Bash. Estos son los pasos que debes seguir para establecer el túnel con Putty:

  1. Abre Putty.
  2. En el panel de categorías (Category), expande Connection y SSH.
  3. Haz clic en túneles (Tunnels).
  4. En el campo Source Port de la sección Port Forwarding, escribe el puerto 3306. Este es el puerto local que vamos a redirigir al servidor. En el campo de destino (Destination), escribe localhost:3306.
  5. Asegúrate de que las opciones Local y Auto están seleccionadas y, seguidamente, haz clic en Add.
  6. En el panel de categorías (Category), haz clic en Session.
  7. En el campo reservado para el Host name, podrás escribir el dominio o la IP de tu servidor. Agrégalo y, en el puerto (Port), introduce el puerto 22. Introduce el puerto correcto en caso de que hayas cambiado el puerto SSH o sea diferente al 22.
  8. Antes de continuar, asegúrate de que en el tipo de conexión (Connection type) está seleccionado SSH. Seguidamente haz clic en Open.Si se muestra algún tipo de alerta acerca de la clave del servidor, acéptala y continúa.
  9. Se mostrará un mensaje para que hagas login. Introduce tu nombre de usuario en el servidor y tu contraseña. Seguidamente, se mostrará la línea de comandos del servidor, momento en el que sabrás que el túnel SSH se ha establecido con éxito. Para asegurarte de que todo ha ido bien, haz clic en el icono de la parte superior izquierda de Putty, luego haz clic en el log de eventos (Event log) y por último comprueba que exista un mensaje en el que se diga que se está redirigiendo la conexión del puerto 3306 de tu servidor al puerto 3306 de tu servidor local.

Una vez creado el túnel podrás utilizar cualquier cliente MySQL para gestionar la base de datos. Si quieres, puedes consultar esta guía para instalar y utilizar MySQL Workbench.

Cómo establecer la conexión en otro puerto

Si también tienes MySQL instalado localmente, entrará en conflicto con la redirección del puerto y se mostrará un error, por lo que deberás crear el túnel en otro puerto diferente al 3306. Vamos a establecerla en el 3307. Para hacerlo, introduce el puerto 3307 en el campo Port:

Establece el túnel SSH desde Linux o MacOS

Para establecer la conexión desde sistema Linux o MacOS sigue estos pasos:

  1. Abre una ventana de terminal y escribe el siguiente comando, reemplazando usuario por el nombre de usuario de tu servidor y dominio.com por el nombre de tu servidor:
    ssh -p 22 usuario@dominio.com -L 3306:localhost:3306

    En caso de que hayas cambiado el puerto SSH o sea diferente al 22, reemplázarlo en el comando superior.

  2. Seguidamente introduce tu contraseña. Cuando se muestre la línea de comandos de tu servidor, significará que el túnel se ha establecido correctamente.

Cómo establecer la conexión en otro puerto

Se podría dar el caso de que también tengas MySQL instalado localmente, algo que entraría en conflicto con la redirección del puerto. Si es este el caso, simplemente cambia el puerto del comando anterior por el puerto 3307 tal que así:

ssh -p 22 usuario@dominio.com -L 3307:localhost:3306

En caso de que hayas cambiado el puerto SSH o sea diferente al 22, reemplázarlo en el comando superior.

Cómo establecer una conexión MySQL directa

Vamos a ver cómo puedes establecer una conexión remota MySQL. La conexión directa el método más sencillo que se puede usar para establecer una conexión. Nuestro sistema accederá al puerto MySQL remoto y se establecerá una conexión no segura.

Para establecer la conexión directa, necesitas que tu servidor esté configurado para aceptar conexiones remotas en el puerto de MySQL, que suele ser el 3306. Vamos a ver los pasos para configurar una conexión mediante la aplicación ODBC Data Source Administrator:

  1. Inicia la aplicación ODBC Data Source Administrator.
  2. Haz clic en Agregar (Add) para añadir una nueva fuente de datos.
  3. En la ventana para crear una nueva fuente de datos (Create New Data Source), haz clic en MySQL ODBC driver.
  4. Haz clic en Terminar (Finish) para iniciar la configuración del conector MySQL de OBDC Data Source.
  5. En la configuración verás un campo para introducir el nombre de la fuente de datos. Escribe un nombre descriptivo.
  6. Asegúrate de que está seleccionada la opción TCP/IP Server. Si vas a configurar una conexión directa, introduce el dominio o al IP de tu servidor en este campo. De lo contrario, si vas a utilizar un túnel SSH, introduce localhost.
  7. Introduce 3306 como puerto. Si configuras una conexión remota y tu servidor usa otro puerto, introduce ese otro puerto en lugar del 3306.

    En caso de utilizar un túnel SSH y tener un servidor MySQL instalado localmente, introduce el puerto 3307:
  8. Escribe el nombre de usuario de la base de datos MSQL a la que te quieres conectar y la contraseña de dicho usuario en los campos inferiores. También puedes introducir el nombre de la base de datos en caso de que quieras que esté preseleccionada una base de datos del usuario.
  9. Haz clic en Test para probar la conexión. Si todo va bien, acepta para finalizar la configuración.

En caso de que se muestre el siguiente mensaje de error, asegúrate de que has seguido las pasos adecuados para esos casos en los que se tiene un servidor MySQL instalado en el sistema local.

Y esto es todo por ahora.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”