🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Conectar base de datos remota en DirectAdmin

Actualizado el 31 de mayo de 2026

¿Necesitas acceder a una base de datos MySQL que está alojada en un servidor DirectAdmin desde tu casa, desde una aplicación web externa o desde un programa como Workbench? Poder conectar una base de datos remota es una tarea muy común cuando empiezas a escalar tus proyectos, ya sea para trabajar en equipo, sincronizar datos o simplemente administrar tu web desde un gestor local. En esta guía te voy a explicar paso a paso cómo habilitar la conexión remota en DirectAdmin, qué configuraciones debes tocar y cómo solucionar los problemas más frecuentes. No necesitas ser un experto, solo seguir las instrucciones al pie de la letra.

¿Qué significa conectar una base de datos remota?

Cuando instalas un CMS como WordPress, Joomla o cualquier aplicación, normalmente la base de datos MySQL está en el mismo servidor que tu web. Eso se llama conexión local (localhost). Pero a veces necesitas que un programa externo, como un script en otro hosting, un plugin de terceros o tu propio ordenador con un cliente MySQL, se conecte a esa base de datos que está en tu servidor DirectAdmin. Eso es una conexión remota.

El proceso implica dos pasos clave:

  1. Configurar el firewall y el servidor MySQL para aceptar conexiones desde fuera (no solo desde localhost).
  2. Crear un usuario de base de datos con permisos para conectarse desde una IP específica o desde cualquier lugar.

[INFO] Por seguridad, nunca debes permitir conexiones desde cualquier IP (%), a menos que sea estrictamente necesario y entiendas los riesgos. Es mucho más seguro limitar el acceso a tu IP pública o a la IP del servidor que hará la conexión.

Requisitos previos antes de empezar

Antes de meter mano en la configuración, asegúrate de tener lo siguiente a mano:

  • Acceso a DirectAdmin: Necesitas un usuario con permisos de administrador o al menos con acceso a la sección de bases de datos y de administración del servidor (si eres el root). Si eres usuario revendedor o de un plan compartido, algunas opciones pueden estar restringidas por el administrador del servidor.
  • Dirección IP del servidor DirectAdmin: La necesitarás para conectar desde fuera. Puedes obtenerla en el panel de control o preguntando a tu proveedor.
  • IP desde la que te conectarás: Debes saber la IP pública de tu casa, oficina o del servidor externo. Puedes consultarla en sitios como whatismyip.com.
  • Cliente MySQL: Un programa como MySQL Workbench, HeidiSQL, DBeaver o simplemente la línea de comandos de MySQL.
  • Nombre de la base de datos y usuario: Ya debes tener creada la base de datos en DirectAdmin. Si no, créala primero desde la sección "MySQL Management".

Paso 1: Configurar el servidor MySQL en DirectAdmin para conexiones remotas

El servidor MySQL normalmente escucha solo en 127.0.0.1 (localhost) por seguridad. Para que acepte conexiones desde fuera, debemos decirle que escuche en todas las interfaces de red o en una IP específica del servidor.

Acceder a la configuración de MySQL

Desde tu panel de DirectAdmin, busca la sección "Advanced Features" o "Custom Build" (dependiendo de la versión). Si no la ves, puedes ir directamente a la URL: https://tu-servidor:2222/CMD_MYSQL.

Dentro de la configuración de MySQL, busca el archivo de configuración principal, normalmente llamado my.cnf o my.ini. En DirectAdmin, a menudo puedes editarlo desde la opción "MySQL Config" o "Edit my.cnf".

Editar la directiva bind-address

Dentro del archivo my.cnf, busca la línea que dice:

bind-address = 127.0.0.1

Cámbiala por:

bind-address = 0.0.0.0

[WARNING] Cambiar a 0.0.0.0 hace que MySQL escuche en todas las interfaces de red del servidor. Si tu servidor tiene varias IPs y solo quieres que escuche en una específica, pon esa IP en lugar de 0.0.0.0. Por ejemplo: bind-address = 192.168.1.100.

Guarda los cambios y reinicia el servicio MySQL. En DirectAdmin puedes hacerlo desde la sección "Services Monitor" o ejecutando el comando service mysqld restart (o mariadb según tu versión) por SSH si tienes acceso root.

Paso 2: Configurar el firewall para permitir el puerto 3306

MySQL usa el puerto 3306 por defecto. Debes asegurarte de que el firewall del servidor permita conexiones entrantes a ese puerto desde la IP de tu cliente.

Si usas CSF (ConfigServer Security & Firewall) – muy común en DirectAdmin

  1. Ve a "Plugins" > "ConfigServer Security & Firewall".
  2. Haz clic en "Firewall Configuration".
  3. Busca la directiva TCP_IN y agrega 3306 al final, separado por comas. Por ejemplo: TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,3306".
  4. Luego, busca TCP_OUT y también agrega 3306 (por si acaso).
  5. Guarda la configuración y haz clic en "Restart csf+ lfd" para aplicar los cambios.

Si usas iptables directamente (sin CSF)

Si tienes acceso SSH, puedes ejecutar:

iptables -A INPUT -p tcp --dport 3306 -s TU_IP_CLIENTE -j ACCEPT
iptables-save > /etc/sysconfig/iptables

Reemplaza TU_IP_CLIENTE por la IP desde la que te conectarás. Si quieres permitir cualquier IP (no recomendado), omite -s TU_IP_CLIENTE.

[TIP] Si no sabes qué firewall usa tu servidor, pregunta a tu proveedor de hosting o revisa la sección de plugins de DirectAdmin.

Paso 3: Crear un usuario de base de datos con acceso remoto

Ahora vamos a la parte más importante: el usuario de MySQL. Los usuarios en MySQL tienen dos componentes: el nombre de usuario y el host desde el que pueden conectar. Por defecto, cuando creas un usuario desde DirectAdmin, se crea con host localhost (o 127.0.0.1). Para conexión remota, necesitas otro usuario o modificar el existente.

Desde phpMyAdmin (más fácil)

  1. En DirectAdmin, ve a "MySQL Management" y haz clic en "phpMyAdmin".
  2. Inicia sesión con tu usuario de base de datos (el que tiene acceso a la base de datos que quieres compartir).
  3. Una vez dentro, haz clic en la pestaña "Cuentas de usuario" (o "User accounts").
  4. Busca el usuario que quieres modificar (por ejemplo, tu_usuario) y haz clic en "Editar privilegios".
  5. En la sección "Información de la cuenta", verás el campo "Nombre de host". Cámbialo de localhost a la IP desde la que te conectarás (ej. 192.168.1.50). Si quieres permitir cualquier IP (menos seguro), pon %.
  6. Haz clic en "Continuar" y luego en "Aceptar" para guardar los cambios.

Desde la línea de comandos MySQL (alternativa)

Si tienes acceso SSH y prefieres la consola:

CREATE USER 'nuevo_usuario'@'IP_CLIENTE' IDENTIFIED BY 'contraseña_segura';
GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'nuevo_usuario'@'IP_CLIENTE';
FLUSH PRIVILEGES;

Reemplaza IP_CLIENTE por la IP real o % para cualquier IP.

Paso 4: Conectar desde tu cliente MySQL

Ya tienes todo configurado. Ahora solo queda probar la conexión.

Ejemplo con MySQL Workbench

  1. Abre MySQL Workbench.
  2. Haz clic en el "+" al lado de "MySQL Connections".
  3. En "Connection Name", pon un nombre descriptivo (ej. "Mi BD Remota").
  4. En "Hostname", pon la IP pública de tu servidor DirectAdmin.
  5. En "Port", deja 3306.
  6. En "Username", pon el nombre de usuario que configuraste (ej. tu_usuario).
  7. Haz clic en "Test Connection" e ingresa la contraseña.
  8. Si todo está bien, verás un mensaje de éxito.

Ejemplo con línea de comandos (Linux/Mac)

mysql -h IP_DEL_SERVIDOR -u tu_usuario -p

Te pedirá la contraseña y, si funciona, entrarás al monitor de MySQL.

Solución de problemas comunes (FAQ)

Aquí tienes las preguntas y errores más típicos que te puedes encontrar.

Error: "Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server"

Este es el error más común. Significa que el usuario que estás usando no tiene permisos para conectarse desde esa IP.

Solución: Revisa el paso 3. Asegúrate de que el usuario tenga el host correcto (tu IP o %). Si ya lo cambiaste, puede que necesites reiniciar MySQL o ejecutar FLUSH PRIVILEGES;.

Error: "Can't connect to MySQL server on 'IP' (10061)"

Indica que el servidor MySQL no está escuchando en el puerto 3306 o que el firewall lo está bloqueando.

Solución:

  1. Verifica que bind-address esté en 0.0.0.0 (paso 1).
  2. Comprueba que el puerto 3306 esté abierto en el firewall (paso 2). Puedes usar herramientas online como "Port Checker" para verificar si el puerto está accesible desde tu IP.
  3. Asegúrate de que el servicio MySQL esté corriendo: systemctl status mysqld o desde DirectAdmin en "Services Monitor".

Error: "Access denied for user 'usuario'@'IP' (using password: YES)"

La contraseña es incorrecta o el usuario no existe para esa IP.

Solución: Verifica la contraseña y que el usuario esté creado con el host correcto. Si usaste %, asegúrate de que no haya otro usuario con el mismo nombre pero con host localhost que esté causando conflicto.

¿Puedo usar la misma base de datos para conexiones locales y remotas?

Sí, perfectamente. Puedes tener un usuario con host localhost para tus aplicaciones web y otro usuario con host % o tu IP para conexiones remotas. Ambos pueden acceder a la misma base de datos.

¿Es seguro permitir conexiones remotas a MySQL?

No del todo. Es un riesgo de seguridad porque expones tu base de datos a internet. Para minimizar riesgos:

  • Nunca uses % a menos que sea imprescindible.
  • Usa contraseñas muy seguras (largas, con caracteres especiales).
  • Limita el acceso solo a las IPs que necesitan conectar.
  • Considera usar una VPN o un túnel SSH en lugar de exponer MySQL directamente.

¿Qué hago si mi proveedor de hosting no permite conexiones remotas?

Algunos proveedores de hosting compartido bloquean esta funcionalidad por seguridad. En ese caso, tienes dos opciones:

  1. Usar un túnel SSH: Conecta por SSH a tu servidor y redirige el puerto local 3306 al remoto. Así te conectas a localhost en tu máquina y el tráfico viaja encriptado.
  2. Actualizar a un plan VPS o dedicado: Donde tienes control total sobre la configuración.

¿Cómo puedo saber mi IP pública para configurar el acceso?

Puedes visitar sitios como whatismyip.com o ipinfo.io desde el ordenador desde el que te vas a conectar. Si tu IP es dinámica (cambia cada cierto tiempo), tendrás que actualizar la configuración periódicamente o usar un servicio DDNS.

¿Afecta esto al rendimiento de mi web?

Conectar remotamente suele ser más lento que localmente debido a la latencia de la red. Para aplicaciones críticas, es mejor mantener la base de datos en el mismo servidor que la aplicación. Las conexiones remotas son ideales para tareas de administración, backups o sincronización puntual.

Conclusión

Conectar una base de datos remota en DirectAdmin no es complicado si sigues estos pasos: configurar el servidor MySQL para que escuche en todas las interfaces, abrir el puerto 3306 en el firewall y crear un usuario con permisos desde tu IP. Recuerda siempre priorizar la seguridad, limitando el acceso a IPs específicas y usando contraseñas robustas.

Si a pesar de seguir la guía sigues teniendo problemas, revisa los logs de MySQL (/var/log/mysql/error.log) o los logs del firewall. Y si tu proveedor de hosting bloquea estas configuraciones, considera un túnel SSH o un plan más flexible.

[TIP] Si estás usando un panel como Syspanel (el antiguo HestiaCP), el proceso es muy similar, pero ten en cuenta que el puerto de acceso al panel es el 2106 y la configuración de firewall puede estar en una ruta diferente. Lo mismo aplica para la edición de my.cnf.

Espero que esta guía te haya sido de ayuda. ¡Ahora ya puedes administrar tus bases de datos desde cualquier lugar!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel