Cómo conceder conexión remota a MySQL en 2024
Un servidor MySQL remoto te ayuda a trabajar de forma más eficiente y mantiene tus datos seguros. Mejora la accesibilidad, permitiéndote a ti y a tu equipo acceder a la base de datos desde cualquier lugar, lo que es perfecto para trabajar a distancia.
Esta configuración mejora el rendimiento de la base de datos MySQL al no utilizar los recursos informáticos de la misma máquina local, lo que se traduce en operaciones más rápidas y fluidas.
Un servidor remoto también incluye medidas de seguridad proporcionadas por el host del servidor virtual, normalmente no disponibles en un servidor local.
El servidor MySQL también está configurado para escuchar conexiones locales por defecto, deshabilitando el acceso remoto a este servidor de bases de datos.
Para ayudarte a empezar, este artículo te proporcionará una guía paso a paso para establecer una conexión remota a MySQL y llevar a cabo la configuración del acceso remoto a MySQL en un servidor Ubuntu a través de hPanel.
Descarga la hoja de trucos CSS definitiva
Tabla de Contenidos
Cómo permitir la conexión remota a MySQL en hPanel
Antes de empezar con esta guía, asegúrate de que tienes acceso a lo siguiente:
- Una interfaz de línea de comandos (CLI) o ventana de terminal para ejecutar comandos.
- La dirección IP o el nombre de host, el puerto y las credenciales de tu servidor MySQL remoto.
- Los privilegios necesarios como usuario root en el servidor MySQL para crear y gestionar bases de datos.
Hostinger facilita la conexión remota al servidor MySQL con nuestra interfaz gráfica. Sigue estos pasos para habilitar una conexión remota a la base de datos:
- Navega a Bases de datos → MySQL remoto desde hPanel.
- Introduce la dirección IP local de un usuario remoto que se conectará al servidor en el campo IP (IPv4 o IPv6). Alternativamente, marca la opción Cualquier host para permitir la conexión desde cualquier dirección IP.
- Una vez hecho esto, haz clic en Crear.
- Recupera nuestro nombre de host MySQL y la dirección IP de la parte superior de la misma página.
- Tus conexiones MySQL remotas aparecen en la sección MySQL Remoto. Pulsa Suprimir para eliminar una instancia de MySQL si es necesario.
Cómo permitir la conexión remota a un servidor de base de datos MySQL
Por razones de seguridad, necesitas una conexión Secure Shell (SSH) para permitir conexiones remotas a tu servidor de bases de datos MySQL. SSH es un protocolo de red seguro que cifra el acceso remoto al servidor.
Aunque no es el único método para asegurar una conexión remota a una base de datos MySQL, SSH garantiza un alto nivel de seguridad, por lo que es la opción preferida para proteger los datos durante la transmisión.
Este método es fundamental cuando se manejan datos sensibles o se conecta en redes no seguras o públicas.
Los usuarios de Windows pueden utilizar PuTTY, un cliente SSH popular, para crear un túnel SSH. Mientras tanto, los usuarios de Linux y macOS disponen de aplicaciones de terminal integradas que admiten SSH.
En todos estos casos, utilizarás un cliente MySQL para interactuar con tu servidor de base de datos de forma remota.
Si eres un usuario existente o nuevo del servicio VPS de Hostinger, encuentra las credenciales de acceso al servidor en la pestaña VPS → Acceso SSH de hPanel o utiliza el Terminal del navegador integrado.
1. Edita el archivo de configuración de MySQL para el acceso remoto
El primer paso es hacer que el servidor MySQL remoto escuche conexiones externas añadiendo una opción extra al archivo de configuración.
Para ello, inicia sesión en tu servidor como usuario root de MySQL y conéctate a la línea de comandos de MySQL. Ejecuta el siguiente comando para determinar la ubicación del archivo de configuración de MySQL:
mysql --help | grep "Default options" -A 1
El resultado debería ser el siguiente:
A continuación, abre y edita el archivo de configuración de MySQL utilizando nano, un editor de texto para sistemas tipo Unix con una interfaz de línea de comandos:
nano /etc/mi.cnf
Una vez abierto el archivo, localiza la línea que contiene la etiqueta [mysqld] y añade el siguiente código:
bind-address=server_IP
Sustituye server_ip por la dirección IP del servidor remoto para limitar las conexiones. Evita establecer el valor de bind-address en 0.0.0.0, ya que permite que cualquier dirección IPv4 acceda a los servidores MySQL, aumentando el riesgo de accesos no autorizados.
Si el archivo de configuración de MySQL tiene una línea que contiene skip-networking, elimínala o márcala como comentario añadiendo # al principio de la línea.
Esta directiva, cuando está activa, hace que el servidor MySQL no escuche conexiones TCP/IP, desactivando de hecho el acceso remoto.
Tras editar el archivo, guárdalo pulsando CTRL+X. Para aplicar los cambios, reinicia el servicio MySQL utilizando el siguiente comando:
sudo systemctl restart mysql
2. Abre el puerto MySQL necesario
El puerto por defecto de MySQL para conexiones externas es el puerto 3306. Si tienes un cortafuegos configurado en tu servidor MySQL, tendrás que permitir el tráfico a través de este puerto específico para permitir el acceso desde máquinas remotas.
Los usuarios de Hostinger con planes VPS KVM pueden añadir nuevas reglas de cortafuegos directamente desde hPanel, navegando a Seguridad → Firewall. Selecciona Crear configuración de cortafuegos, ponle un nombre y haz clic en Editar para configurarla.
Este tutorial utiliza el Protocolo de Control de Transmisión (TCP) y el puerto número 3306. La fuente está configurada como Personalizada, lo que permite el tráfico entrante sólo desde una dirección IP específica.
Cuando hayas terminado de establecer la configuración de la conexión remota a la base de datos, haz clic en Añadir norma.
Como alternativa, abre el Terminal del navegador de hPanel y utiliza el siguiente comando para restringir el acceso a una dirección IP remota concreta utilizando iptables, una herramienta de cortafuegos muy utilizada por el núcleo de Linux.
Procede a asegurar el acceso remoto sustituyendo dirección_IP_remota por la dirección IP real del host MySQL remoto:
iptables -A INPUT -i eth0 -s remote_IP_address -p tcp --dport 3306 -j ACCEPT
Omitir -s remote_IP_address de la sintaxis abre el puerto 3306 para el tráfico sin restricciones. Ten cuidado con esta configuración, ya que aumenta el riesgo de acceso no autorizado.
Guarda la configuración de iptables introduciendo:
iptables-save > /etc/sysconfig/iptables
3. Conéctate al servidor MySQL remoto
Después de configurar tu servidor MySQL para permitir conexiones remotas, los usuarios de la dirección IP especificada pueden establecer una nueva conexión desde una máquina remota. Para ello, introduce el siguiente comando en tu terminal:
mysql -u username -h mysql_server_ip -p
Sustituye username por tu nombre de usuario MySQL y mysql_server_ip por la dirección IP o el nombre de host de tu servidor MySQL. El parámetro -p activa la autenticación mediante contraseña, solicitándote que introduzcas la contraseña de la cuenta de usuario especificada.
A continuación, introduce el valor de la contraseña de la cuenta de usuario MySQL. Si la conexión tiene éxito, entrarás en la interfaz de línea de comandos MySQL, indicada por un prompt mysql>.
Una vez conectado, puedes especificar el nombre de la base de datos con la que deseas trabajar utilizando el comando que se indica a continuación:
USE database_name;
Entonces podrás empezar a ejecutar comandos y a interactuar con la base de datos MySQL de forma remota.
Ejecuta una consulta sencilla para probar la interacción con la base de datos MySQL. Por ejemplo, este comando básico lista todas las bases de datos disponibles para tu cuenta de usuario:
SHOW DATABASES;
Sal de la interfaz de línea de comandos de MySQL escribiendo:
exit
Solución de problemas de conexión remota a MySQL
Sigue estos pasos si tienes problemas para establecer un enlace MySQL remoto:
- Comprueba el estado del servidor MySQL: utiliza el comando sudo service mysql status para comprobar si el servidor MySQL está funcionando.
- Verifica la conectividad de la red: haz un ping a la dirección IP de tu servidor utilizando el comando ping mysql_server_ip para comprobar si hay problemas en la red.
- Confirma los privilegios del usuario MySQL remoto: utiliza el comando SHOW GRANTS FOR ‘nombredeusuario’@’localhost’; para comprobar si el usuario MySQL que estás utilizando tiene la autorización correcta. Consulta nuestro artículo sobre la creación de usuarios MySQL y la concesión de privilegios para obtener más información.
- Comprueba la configuración del cortafuegos: si estás configurando un túnel SSH para tu conexión MySQL, añade el puerto SSH dedicado de tu proveedor de alojamiento web a las reglas del cortafuegos.
- Verifica el nombre de host y las credenciales del servidor MySQL: comprueba dos veces la dirección IP o el nombre de host del servidor, el nombre de usuario y la contraseña para ver si hay errores tipográficos.
- Busca ayuda: si sigues atascado, el Asistente VPS con IA de Hostinger y el equipo de Éxito del Cliente 24/7 están listos para ayudarte.
Conclusión
Habilitar acceso remoto a una base de datos MySQL te permite acceder y gestionar tus bases de datos MySQL desde cualquier lugar, mejorando la eficiencia de los equipos remotos. También mejora el rendimiento de tu base de datos y la mantiene a salvo de accesos no autorizados y ataques de red.
Hostinger simplifica la habilitación del acceso remoto a MySQL a través de hPanel con una herramienta de configuración de cortafuegos fácil de usar y un Terminal de navegador integrado para facilitar su uso.
Aquí tienes un rápido resumen de los pasos para permitir la conexión remota a MySQL si no estás utilizando las herramientas integradas de Hostinger:
- Cambia el archivo de configuración del servidor MySQL para el acceso remoto.
- Asegúrate de que el puerto estándar 3306 de MySQL está abierto para conexiones.
- Conéctate al servidor MySQL y prueba la conexión.
Esperamos que este artículo te haya ayudado a entender la conexión remota a MySQL y cómo aprovecharla para un mejor flujo de trabajo. Deja un comentario más abajo si tienes alguna pregunta.