Configurar acceso remoto a base de datos MySQL en DirectAdmin
Introducción
Conectar a tu base de datos MySQL desde fuera de tu servidor es una tarea que, aunque parezca compleja, se puede realizar de forma sencilla si sigues los pasos adecuados. En este artículo te guiaremos a través del proceso de configurar acceso remoto a base de datos MySQL en DirectAdmin, una de las herramientas de administración de hosting más populares. Ya sea que necesites conectar una aplicación externa, un gestor de contenidos o simplemente gestionar tus datos desde tu ordenador local, aquí encontrarás toda la información necesaria.
¿Qué es el acceso remoto a MySQL?
Cuando instalas MySQL en un servidor, por defecto solo permite conexiones desde el mismo equipo (localhost). Esto es una medida de seguridad para evitar accesos no autorizados. Sin embargo, en muchos casos necesitas que tu base de datos sea accesible desde otras direcciones IP, por ejemplo, desde la oficina, tu casa o incluso desde otro servidor. Habilitar el acceso remoto implica modificar la configuración de MySQL y, además, gestionar los permisos de los usuarios en DirectAdmin.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Acceso a DirectAdmin como usuario administrador o con permisos de gestión de bases de datos.
- Conocimiento de la IP o rango de IPs desde las que te conectarás. Si no sabes tu IP pública, puedes consultarla en sitios como
whatismyip.com. - Un usuario de base de datos ya creado en DirectAdmin (si no lo tienes, puedes crearlo desde el panel).
- Acceso SSH al servidor (opcional pero recomendado para verificar la configuración de MySQL).
[INFO] Si tu hosting es compartido, es posible que el acceso remoto esté restringido por el proveedor. En ese caso, contacta con soporte técnico.
Paso 1: Crear o modificar un usuario de base de datos en DirectAdmin
El primer paso es asegurarte de que el usuario de la base de datos tenga permisos para conectarse desde una IP externa. En DirectAdmin, esto se gestiona desde la sección de Gestión de MySQL.
- Inicia sesión en DirectAdmin.
- Ve a Gestión de Cuentas > Gestión de Bases de Datos MySQL.
- Selecciona la base de datos a la que quieres dar acceso remoto.
- Busca la opción Añadir Usuario o Editar Usuario (dependiendo de si ya existe).
- Al crear o editar el usuario, verás un campo llamado Host o Acceso desde. Por defecto suele estar en
localhost. Cámbialo a la IP específica desde la que te conectarás (por ejemplo,192.168.1.100) o usa%para permitir cualquier IP (no recomendado por seguridad).
[WARNING] Usar
%permite conexiones desde cualquier dirección IP. Esto es un riesgo de seguridad. Siempre que sea posible, especifica la IP exacta o un rango (ej:192.168.1.%).
- Guarda los cambios. DirectAdmin actualizará los permisos en MySQL automáticamente.
Paso 2: Configurar MySQL para aceptar conexiones externas
Aunque hayas configurado el usuario en DirectAdmin, es posible que MySQL esté escuchando solo en 127.0.0.1 (localhost). Para permitir conexiones remotas, debes modificar el archivo de configuración de MySQL.
2.1 Acceder al archivo de configuración
Conéctate a tu servidor mediante SSH (si tienes acceso) o a través del administrador de archivos de DirectAdmin. El archivo de configuración suele estar en /etc/mysql/my.cnf o /etc/my.cnf. En algunos sistemas también puede ser /etc/mysql/mariadb.conf.d/50-server.cnf si usas MariaDB.
2.2 Modificar la directiva bind-address
Busca la línea que dice bind-address = 127.0.0.1 y cámbiala por bind-address = 0.0.0.0 para aceptar conexiones desde cualquier interfaz de red. Si solo quieres permitir una IP específica, puedes poner esa IP en lugar de 0.0.0.0.
[mysqld]
bind-address = 0.0.0.0
2.3 Reiniciar el servicio MySQL
Guarda el archivo y reinicia MySQL para aplicar los cambios:
sudo systemctl restart mysql
O si usas MariaDB:
sudo systemctl restart mariadb
[TIP] Si no tienes acceso SSH, algunos paneles como Syspanel (antes HestiaCP) permiten modificar estos parámetros desde la interfaz web en el puerto 2106. Sin embargo, en DirectAdmin esta opción no está disponible directamente, por lo que necesitarás acceso al servidor.
Paso 3: Configurar el firewall (si es necesario)
Muchos servidores tienen un firewall activo (como iptables, ufw o firewalld) que bloquea el puerto 3306 (puerto por defecto de MySQL). Debes permitir el tráfico entrante desde tu IP.
Ejemplo con UFW (Ubuntu/Debian)
sudo ufw allow from TU_IP to any port 3306
Ejemplo con firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="TU_IP" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload
[INFO] Si no sabes qué firewall usas, consulta con tu proveedor de hosting o verifica con
sudo ufw statusosudo firewall-cmd --list-all.
Paso 4: Probar la conexión remota
Una vez realizados los cambios, es hora de probar la conexión desde tu equipo local. Puedes usar herramientas como:
- MySQL Workbench: Interfaz gráfica muy popular.
- HeidiSQL (Windows): Ligero y fácil de usar.
- Línea de comandos: Si tienes MySQL instalado localmente, usa:
mysql -h IP_DEL_SERVIDOR -u USUARIO -p
Te pedirá la contraseña del usuario. Si todo está correcto, accederás a la consola de MySQL.
[WARNING] Si la conexión falla, verifica:
- Que la IP del servidor sea correcta.
- Que el usuario tenga el host adecuado en DirectAdmin.
- Que el firewall permita el puerto 3306.
- Que MySQL esté escuchando en
0.0.0.0(puedes comprobarlo connetstat -tlnp | grep 3306).
Buenas prácticas de seguridad
Habilitar el acceso remoto a MySQL puede exponer tu base de datos a ataques si no tomas precauciones. Sigue estas recomendaciones:
- Usa contraseñas fuertes para los usuarios de base de datos.
- Limita el acceso por IP en lugar de usar
%. - Cambia el puerto por defecto (3306) por uno no estándar para reducir escaneos automáticos. Esto se hace en el archivo de configuración de MySQL.
- Usa conexiones SSL/TLS si es posible, para cifrar los datos en tránsito.
- Monitorea los logs de MySQL para detectar intentos de acceso no autorizados.
Solución de problemas comunes
No puedo conectarme aunque seguí todos los pasos
- Verifica que el usuario tenga el host correcto: A veces DirectAdmin no actualiza los permisos automáticamente. Puedes forzarlo desde la línea de comandos:
GRANT ALL PRIVILEGES ON basededatos.* TO 'usuario'@'IP_remota' IDENTIFIED BY 'contraseña';
FLUSH PRIVILEGES;
-
Comprueba el archivo de configuración: Asegúrate de que no haya otro archivo de configuración que sobrescriba el
bind-address. Por ejemplo, en algunos sistemas existe/etc/mysql/mariadb.conf.d/50-server.cnf. -
Firewall del proveedor: Algunos proveedores de hosting bloquean el puerto 3306 a nivel de red. En ese caso, deberás contactar con soporte.
Error "Host '...' is not allowed to connect to this MySQL server"
Este error indica que el usuario no tiene permisos para conectarse desde esa IP. Revisa el host configurado en DirectAdmin o en MySQL.
Error "Connection refused"
Suele deberse a que MySQL no está escuchando en la IP pública o el firewall bloquea el puerto. Verifica bind-address y las reglas del firewall.
Preguntas frecuentes (FAQ)
¿Puedo dar acceso remoto a varios usuarios?
Sí, cada usuario puede tener su propio host (IP) configurado en DirectAdmin.
¿Es seguro usar % como host?
No es recomendable. Solo úsalo en entornos de desarrollo o si tienes un firewall muy restrictivo.
¿Qué hago si mi proveedor no permite modificar bind-address?
Algunos hosting compartidos no dan acceso SSH. En ese caso, puedes usar un túnel SSH para conectar de forma segura.
¿Funciona igual en Syspanel (HestiaCP)?
En Syspanel (puerto 2106), el proceso es similar, pero la configuración de bind-address se puede hacer desde la interfaz web en la sección de servidor. Sin embargo, en DirectAdmin necesitas acceso SSH.
¿Puedo conectar desde una aplicación web en otro servidor?
Sí, siempre que configures el host del usuario con la IP del servidor de la aplicación y permitas el tráfico en el firewall.
Conclusión
Configurar el acceso remoto a una base de datos MySQL en DirectAdmin es un proceso que combina ajustes en el panel de control, modificaciones en la configuración del servidor y, en ocasiones, reglas de firewall. Siguiendo los pasos de esta guía, podrás conectar tus aplicaciones externas de forma segura y eficiente. Recuerda siempre priorizar la seguridad limitando el acceso por IP y usando contraseñas robustas.
Si encuentras algún problema, no dudes en consultar la documentación de DirectAdmin o contactar con tu proveedor de hosting. ¡Buena suerte con tu configuración!
