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

Cómo conectar WordPress a una base de datos MySQL remota (DirectAdmin)

Actualizado el 16 de octubre de 2025

Conectar tu WordPress a una base de datos MySQL remota es una práctica muy común cuando buscas separar recursos, mejorar el rendimiento de tu hosting o centralizar la gestión de varias webs en un solo servidor de datos. Si tu panel de control es DirectAdmin, el proceso es bastante sencillo, aunque requiere prestar atención a ciertos detalles de configuración, sobre todo en el archivo wp-config.php.

En esta guía extensa y paso a paso, vamos a explicarte exactamente cómo hacerlo, desde la creación de la base de datos remota en DirectAdmin hasta la configuración final de tu WordPress. No necesitas ser un experto, solo seguir las instrucciones al pie de la letra.


¿Por qué usar una base de datos remota para WordPress?

Antes de meternos en faena, es importante que entiendas por qué querrías hacer esto. Normalmente, cuando instalas WordPress en un servidor, la base de datos (MySQL) y los archivos del sitio (PHP, CSS, etc.) viven en la misma máquina. Sin embargo, hay escenarios donde separarlos es beneficioso:

  • Rendimiento: Puedes tener un servidor de base de datos potente (con más RAM y CPU) y un servidor web más modesto. Esto permite escalar verticalmente cada parte por separado.
  • Seguridad: Aislar los datos en un servidor privado puede reducir el riesgo de ataques si el servidor web se ve comprometido.
  • Centralización: Si tienes varios sitios WordPress, puedes centralizar todas tus bases de datos en un solo servidor MySQL, facilitando las copias de seguridad y la administración.
  • Mantenimiento: Puedes reiniciar o actualizar el servidor web sin afectar a la base de datos, y viceversa.

Sin embargo, esta configuración introduce un punto de red crítico. Si el servidor de base de datos cae o la conexión entre ambos es lenta, tu web se caerá o cargará muy lento. Por eso, es vital que ambos servidores tengan una buena conexión y baja latencia entre ellos.


Requisitos previos y consideraciones importantes

Antes de empezar a configurar nada, asegúrate de tener lo siguiente:

  1. Acceso a DirectAdmin: Necesitas credenciales de administrador o de un usuario que tenga permisos para gestionar bases de datos MySQL.
  2. Servidor de base de datos remoto: Debe tener una IP pública o una IP privada accesible desde el servidor donde está WordPress. Si es una IP privada, asegúrate de que ambos servidores estén en la misma red (por ejemplo, en el mismo VPS o en el mismo clúster de hosting).
  3. Credenciales de MySQL: Necesitarás el usuario y la contraseña que crees para la base de datos remota.
  4. Acceso al servidor web: Capacidad para editar el archivo wp-config.php de tu instalación de WordPress. Esto se puede hacer por FTP (con FileZilla) o mediante el administrador de archivos de tu panel de control.

[WARNING] Esta configuración es delicada. Un error en la configuración de red o en los permisos de MySQL hará que tu sitio web muestre el temido error "Error establishing a database connection". Te recomendamos hacer una copia de seguridad completa de tu sitio y tu base de datos antes de empezar.


Paso 1: Crear la base de datos y el usuario en DirectAdmin (Servidor Remoto)

El primer paso es preparar el servidor que alojará la base de datos. Si estás usando DirectAdmin para esto, el proceso es muy visual.

  1. Inicia sesión en DirectAdmin en el servidor donde quieres que viva la base de datos.
  2. Busca la sección "MySQL Management" o "MySQL Manager". Normalmente está en el panel principal, bajo el apartado "Account Manager" o "Database".
  3. Crea una nueva base de datos: Haz clic en "Create New Database". Te pedirá un nombre. En DirectAdmin, el nombre suele llevar un prefijo con tu nombre de usuario. Por ejemplo, si tu usuario es usuario1 y pones wpremota, el nombre final será usuario1_wpremota.
  4. Crea un usuario para la base de datos: En el mismo formulario, te pedirá que crees un usuario y una contraseña. Asegúrate de usar una contraseña fuerte. Anota el nombre de usuario completo (también llevará el prefijo, ej. usuario1_wpuser) y la contraseña.
  5. Asigna todos los privilegios: Marca la casilla para otorgar TODOS los privilegios sobre la base de datos a ese usuario. WordPress necesita poder leer, escribir, modificar y eliminar registros, así que los privilegios completos son necesarios.

Paso 2: Configurar el acceso remoto (Hosting)

Este es el paso más crítico y donde la gente suele fallar. Por defecto, MySQL está configurado para escuchar solo conexiones locales (localhost). Para que tu WordPress en otro servidor pueda conectarse, debes permitir conexiones remotas.

### 2.1. Habilitar la escucha en la IP correcta

Necesitas editar la configuración de MySQL en el servidor de bases de datos. Esto se hace típicamente en el archivo my.cnf o my.ini (en Windows). En sistemas Linux, suele estar en /etc/mysql/my.cnf o /etc/my.cnf.

  1. Accede por SSH a tu servidor de base de datos.
  2. Busca la línea que dice bind-address. Por defecto, suele ser 127.0.0.1. Debes cambiarla a la IP pública del servidor de base de datos, o a 0.0.0.0 si quieres que escuche en todas las interfaces (menos seguro).
    • bind-address = 0.0.0.0 permite conexiones desde cualquier IP.
    • bind-address = 192.168.1.10 permite conexiones solo a través de esa IP específica.
  3. Guarda el archivo y reinicia el servicio de MySQL: sudo systemctl restart mysql o sudo service mysql restart.

[WARNING] Cambiar bind-address a 0.0.0.0 expone tu servidor MySQL a Internet. Asegúrate de tener un firewall configurado (como UFW o CSF) que solo permita el acceso al puerto 3306 desde la IP de tu servidor web. Dejar el puerto abierto a todo el mundo es una invitación a los hackers.

### 2.2. Crear un usuario MySQL con host remoto

Incluso si el servidor escucha en la IP correcta, el usuario que creaste en DirectAdmin solo tiene permiso para conectarse desde localhost. Necesitas crear un usuario específico para la IP de tu servidor web.

  1. Accede a MySQL como root: mysql -u root -p
  2. Ejecuta el siguiente comando SQL, reemplazando los valores:
CREATE USER 'usuario_remoto'@'IP_DE_TU_SERVIDOR_WEB' IDENTIFIED BY 'TU_CONTRASEÑA_FUERTE';
GRANT ALL PRIVILEGES ON `usuario1_wpremota`.* TO 'usuario_remoto'@'IP_DE_TU_SERVIDOR_WEB';
FLUSH PRIVILEGES;
  • usuario_remoto: El nombre del usuario que usarás (puede ser el mismo que creaste en DirectAdmin, pero es más seguro crear uno específico).
  • IP_DE_TU_SERVIDOR_WEB: La IP pública del servidor donde está instalado WordPress. Si tu IP es dinámica, usa el rango completo (ej. 192.168.1.%).
  • usuario1_wpremota: El nombre exacto de la base de datos que creaste.

[TIP] Si no estás seguro de cómo hacer esto por SSH, DirectAdmin no ofrece una interfaz gráfica para crear usuarios con host remoto en su versión estándar. Sin embargo, puedes usar la opción de "phpMyAdmin" que suele venir integrada para ejecutar estas consultas SQL.


Paso 3: Configurar el archivo wp-config.php en tu WordPress

Ahora viene la parte que conecta ambos mundos. Debes editar el archivo wp-config.php que se encuentra en la raíz de tu instalación de WordPress.

  1. Conéctate a tu servidor web por FTP (FileZilla) o usa el Administrador de Archivos de tu panel de hosting.
  2. Localiza el archivo wp-config.php y ábrelo con un editor de texto plano (como Notepad++ o Sublime Text).
  3. Busca las líneas que definen las constantes de la base de datos. Se verán así:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** MySQL database username */
define( 'DB_USER', 'username_here' );

/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
  1. Cámbialas por los datos de tu base de datos remota:
define( 'DB_NAME', 'usuario1_wpremota' ); // El nombre completo de la BD remota
define( 'DB_USER', 'usuario_remoto' ); // El usuario que creaste para el host remoto
define( 'DB_PASSWORD', 'TU_CONTRASEÑA_FUERTE' ); // La contraseña de ese usuario
define( 'DB_HOST', 'IP_DEL_SERVIDOR_MYSQL' ); // La IP pública del servidor de BD

[INFO] El campo DB_HOST es crucial. No debe ser localhost ni una IP privada a menos que tu servidor web esté en la misma red privada. Debe ser la IP pública o el hostname del servidor de base de datos.

  1. Guarda el archivo y súbelo de nuevo al servidor si lo estabas editando localmente.

Paso 4: Probar la conexión y solucionar problemas

Una vez guardado el archivo, intenta acceder a tu sitio web. Si todo está correcto, verás tu web cargando con normalidad. Si no, verás el error de conexión.

Aquí tienes una guía rápida de soluciones:

### 4.1. Error "Error establishing a database connection"

Este es el error más común. Significa que WordPress no puede conectarse al servidor MySQL.

  • Verifica la IP: Asegúrate de que la IP en DB_HOST es correcta y que el servidor de BD está encendido.
  • Verifica el usuario y la contraseña: Revisa que no haya errores tipográficos. Recuerda que el usuario en MySQL es sensible a mayúsculas y minúsculas.
  • Verifica el firewall: Comprueba que el puerto 3306 está abierto en el servidor de base de datos para la IP de tu servidor web. Puedes probar con un comando como telnet IP_DEL_SERVIDOR_MYSQL 3306 desde tu servidor web.

### 4.2. Error "Connection refused"

Esto suele indicar que el servidor MySQL no está escuchando en la IP pública o que el firewall está bloqueando la conexión.

  • Revisa el bind-address en my.cnf.
  • Revisa las reglas de firewall (UFW, CSF, etc.).

### 4.3. Error "Access denied for user"

Esto indica que el usuario existe pero no tiene permiso para conectarse desde tu IP.

  • Vuelve a ejecutar el comando GRANT con la IP correcta de tu servidor web.
  • Asegúrate de haber ejecutado FLUSH PRIVILEGES;.

Preguntas frecuentes (FAQ)

¿Puedo usar el mismo usuario de DirectAdmin para la conexión remota?
Sí, puedes, pero es menos seguro. DirectAdmin crea usuarios con host localhost. Deberías modificar el host del usuario en MySQL para que sea tu IP remota. Te recomendamos crear un usuario nuevo específicamente para la conexión remota.

¿Qué pasa si mi servidor web y mi servidor de base de datos están en el mismo hosting pero en cuentas diferentes?
A menudo, los hosts no permiten conexiones remotas a MySQL por defecto. Deberás contactar con el soporte del hosting para que habiliten el acceso remoto y te den la IP correcta a usar. A veces, en lugar de una IP, te dan un hostname como mysql.servidor.com.

¿Es mejor usar una IP privada en lugar de una IP pública?
Sí, siempre es mejor. Usar una IP privada (como las que empiezan por 10.0.x.x o 192.168.x.x) es más rápido y seguro, ya que el tráfico no sale a Internet. Solo es posible si ambos servidores están en la misma red privada (por ejemplo, en el mismo VPS o en un clúster de hosting).

¿Puedo usar SSL para la conexión a la base de datos remota?
Sí, MySQL soporta conexiones TLS/SSL. Es una capa extra de seguridad, pero requiere configuración adicional en ambos servidores. No es imprescindible para un funcionamiento básico.

¿Qué pasa con el puerto? ¿Es siempre el 3306?
Sí, el puerto por defecto de MySQL es el 3306. Si tu proveedor lo ha cambiado por seguridad, deberás especificarlo en el campo DB_HOST añadiendo :PUERTO (ej. DB_HOST, 'IP_SERVIDOR:3307').


Conclusión y buenas prácticas

Conectar WordPress a una base de datos MySQL remota en DirectAdmin es un proceso que, una vez dominado, te da una flexibilidad enorme. Es una técnica usada en entornos de alto rendimiento y alta disponibilidad.

Recuerda las tres claves:

  1. Configurar el servidor MySQL para que escuche en la IP correcta (bind-address).
  2. Crear un usuario MySQL con permisos específicos para la IP de tu servidor web.
  3. Editar wp-config.php con los datos correctos, prestando especial atención al campo DB_HOST.

Buenas prácticas adicionales:

  • Mantén el software actualizado: Tanto WordPress como MySQL deben estar en sus últimas versiones estables para evitar vulnerabilidades conocidas.
  • Monitorea la latencia: Utiliza herramientas como ping o mtr para asegurarte de que la conexión entre ambos servidores es rápida y estable.
  • Copia de seguridad: Haz copias de seguridad automatizadas de tu base de datos remota. Puedes usar mysqldump o las herramientas que te ofrece DirectAdmin.

Con esta guía, deberías tener tu WordPress funcionando con una base de datos externa en poco tiempo. Si tienes algún problema, repasa los pasos y no dudes en consultar la documentación oficial de WordPress sobre wp-config.php o la de MySQL sobre usuarios y privilegios. ¡Buena suerte!

¿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