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

Configurar base de datos remota para WordPress

Actualizado el 25 de marzo de 2026

¿Alguna vez te has preguntado si es buena idea separar la base de datos de tu sitio WordPress del servidor donde está alojado el sitio web? La respuesta es que sí, y se llama base de datos remota. Esta configuración, aunque suena técnica, puede darte grandes ventajas en rendimiento, seguridad y escalabilidad.

En esta guía extensa y muy detallada, te explicaré paso a paso cómo configurar una base de datos remota para WordPress. No necesitas ser un experto en servidores; solo sigue estas instrucciones al pie de la letra. Hablaremos de MySQL, de cómo establecer una conexión remota segura y de los ajustes clave en tu archivo wp-config.php.


¿Qué es una base de datos remota y por qué usarla?

Cuando instalas WordPress de forma tradicional, el sitio web y la base de datos (donde se guardan tus entradas, usuarios y configuraciones) viven en el mismo servidor. En una configuración con base de datos remota, el sitio web y la base de datos están en servidores diferentes, conectados a través de la red.

Ventajas principales

  • Rendimiento mejorado: Al separar la carga de trabajo, el servidor web se dedica solo a servir páginas y el servidor de base de datos a gestionar consultas. Esto evita cuellos de botella.
  • Mayor seguridad: Si un atacante compromete tu servidor web, no tendrá acceso directo a la base de datos, ya que está en otro lugar. Además, puedes restringir el acceso a la base de datos solo desde la IP de tu servidor web.
  • Escalabilidad: Puedes escalar cada componente por separado. Si tu sitio crece, puedes mejorar el servidor de base de datos sin tocar el servidor web, o viceversa.
  • Mantenimiento sin caídas: Puedes reiniciar o mantener un servidor mientras el otro sigue funcionando.

Desventajas a considerar

  • Latencia de red: La conexión entre servidores añade un pequeño retardo. Si ambos están en el mismo centro de datos, es mínimo.
  • Complejidad inicial: La configuración es un poco más compleja que una instalación estándar.
  • Dependencia de red: Si la conexión de red entre servidores falla, tu sitio web se caerá.

Requisitos previos

Antes de empezar, asegúrate de tener lo siguiente:

  1. Dos servidores (o VPS): Uno para el sitio web (servidor web) y otro para la base de datos (servidor de base de datos). Ambos deben tener acceso a internet y estar en la misma red privada si es posible (para reducir latencia).
  2. Acceso root o sudo a ambos servidores.
  3. MySQL o MariaDB instalado en el servidor de base de datos. Te recomiendo MariaDB por su rendimiento y características.
  4. Un panel de control o acceso por línea de comandos. En este artículo usaré ejemplos con Syspanel (antes conocido como HestiaCP) y también con comandos manuales.

[INFO] Si usas Syspanel, recuerda que el puerto de acceso al panel es el 2106. Por ejemplo: https://tu-servidor:2106.


Paso 1: Configurar MySQL para conexiones remotas

Por defecto, MySQL solo acepta conexiones desde el mismo servidor (localhost). Para permitir conexiones remotas, debemos modificar su configuración.

1.1. Editar el archivo de configuración de MySQL

Conéctate al servidor de base de datos por SSH y abre el archivo de configuración de MySQL. La ubicación puede variar, pero suele ser /etc/mysql/mariadb.conf.d/50-server.cnf (MariaDB) o /etc/mysql/my.cnf (MySQL).

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Busca la línea que dice bind-address = 127.0.0.1. Esta línea le dice a MySQL que solo escuche en la interfaz local. Cámbiala a 0.0.0.0 para que escuche en todas las interfaces de red.

bind-address = 0.0.0.0

[WARNING] Cambiar a 0.0.0.0 expone MySQL a todas las interfaces de red, incluyendo internet. Asegúrate de tener un firewall configurado para permitir solo la IP de tu servidor web. Nunca dejes MySQL abierto a todo internet.

Guarda el archivo (Ctrl+O, luego Enter) y sal (Ctrl+X).

1.2. Reiniciar MySQL

Para que los cambios surtan efecto, reinicia el servicio:

sudo systemctl restart mariadb

O si usas MySQL:

sudo systemctl restart mysql

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

Ahora necesitamos un usuario de MySQL que pueda conectarse desde el servidor web. No uses el usuario root para conexiones remotas por seguridad.

Conéctate a MySQL como root:

sudo mysql -u root -p

Te pedirá la contraseña de root de MySQL (no la del sistema). Una vez dentro, ejecuta los siguientes comandos:

2.1. Crear la base de datos (opcional, pero recomendado)

Si aún no has creado la base de datos para WordPress, hazlo ahora:

CREATE DATABASE nombre_de_tu_base_de_datos;

2.2. Crear el usuario y otorgar permisos

Crea un usuario que pueda conectarse desde la IP de tu servidor web. Reemplaza 'IP_DEL_SERVIDOR_WEB' con la dirección IP real de tu servidor web (ej: '192.168.1.100'). También puedes usar '%' para permitir cualquier IP, pero es menos seguro.

CREATE USER 'nombre_usuario'@'IP_DEL_SERVIDOR_WEB' IDENTIFIED BY 'contraseña_segura';

Luego, otorga todos los privilegios sobre la base de datos que creaste a ese usuario:

GRANT ALL PRIVILEGES ON nombre_de_tu_base_de_datos.* TO 'nombre_usuario'@'IP_DEL_SERVIDOR_WEB';

Finalmente, aplica los cambios:

FLUSH PRIVILEGES;

Sal de MySQL:

EXIT;

[TIP] Usa una contraseña larga y compleja. Puedes generarla con herramientas como openssl rand -base64 32.


Paso 3: Configurar el firewall en el servidor de base de datos

Es crucial que solo el servidor web pueda acceder al puerto de MySQL (3306). Configura el firewall (ufw o iptables) para permitir tráfico entrante desde la IP de tu servidor web.

Ejemplo con UFW (Uncomplicated Firewall)

sudo ufw allow from IP_DEL_SERVIDOR_WEB to any port 3306

Ejemplo con firewalld (CentOS/RHEL)

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="IP_DEL_SERVIDOR_WEB" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --reload

[WARNING] No olvides denegar el acceso al puerto 3306 desde cualquier otra IP. Si usas Syspanel, puedes gestionar las reglas de firewall desde el panel mismo, en la sección de Firewall.


Paso 4: Configurar WordPress para usar la base de datos remota

Ahora ve al servidor web. Aquí es donde está instalado tu sitio WordPress. Necesitas modificar el archivo wp-config.php.

4.1. Localizar y editar wp-config.php

Conéctate al servidor web por SSH y navega hasta la carpeta raíz de tu sitio WordPress. Normalmente es /var/www/html/tusitio o /home/usuario/web/tusitio/public_html.

cd /var/www/html/tusitio

Abre el archivo wp-config.php con un editor:

sudo nano wp-config.php

4.2. Modificar las constantes de conexión a la base de datos

Busca las líneas que definen DB_NAME, DB_USER, DB_PASSWORD y DB_HOST. Cámbialas por los valores que usaste en el servidor de base de datos remoto.

define('DB_NAME', 'nombre_de_tu_base_de_datos');
define('DB_USER', 'nombre_usuario');
define('DB_PASSWORD', 'contraseña_segura');
define('DB_HOST', 'IP_DEL_SERVIDOR_DE_BASE_DE_DATOS');

[INFO] La constante DB_HOST debe ser la IP pública o privada del servidor de base de datos. Si ambos servidores están en la misma red privada, usa la IP privada para menor latencia.

4.3. (Opcional) Forzar conexión SSL para mayor seguridad

Si tu servidor de base de datos soporta SSL, puedes forzar una conexión cifrada añadiendo estas líneas justo antes del comentario /* That's all, stop editing! Happy publishing. */:

define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);

[WARNING] Habilitar SSL requiere que tengas los certificados configurados en ambos servidores. Si no estás seguro, omite este paso.

Guarda el archivo y sal.


Paso 5: Probar la conexión

Para verificar que todo funciona correctamente, puedes usar un script PHP simple desde el servidor web.

Crea un archivo llamado test_db.php en la raíz de tu sitio:

<?php
$link = mysqli_connect('IP_DEL_SERVIDOR_DE_BASE_DE_DATOS', 'nombre_usuario', 'contraseña_segura', 'nombre_de_tu_base_de_datos');

if (!$link) {
    die('Error de conexión: ' . mysqli_connect_error());
}
echo 'Conexión exitosa';
mysqli_close($link);
?>

Accede a http://tusitio.com/test_db.php desde tu navegador. Si ves "Conexión exitosa", ¡todo está bien! Luego elimina el archivo por seguridad.

rm test_db.php

Solución de problemas comunes (FAQ)

1. "Error establishing a database connection"

  • Causa: La conexión remota no está configurada correctamente.
  • Solución: Verifica que el usuario tenga permisos desde la IP correcta, que el firewall permita el puerto 3306 y que DB_HOST tenga la IP correcta.

2. "Access denied for user"

  • Causa: Usuario o contraseña incorrectos, o el usuario no tiene permiso para conectarse desde esa IP.
  • Solución: Revisa el comando GRANT y asegúrate de haber ejecutado FLUSH PRIVILEGES.

3. La conexión es muy lenta

  • Causa: Latencia de red entre servidores.
  • Solución: Si es posible, coloca ambos servidores en el mismo centro de datos o red privada. También puedes optimizar las consultas de WordPress con plugins de caché.

4. No puedo acceder a Syspanel (puerto 2106)

  • Causa: El firewall del servidor de base de datos bloquea el puerto.
  • Solución: Asegúrate de que el puerto 2106 esté abierto en el firewall del servidor de base de datos si necesitas gestionarlo desde allí. Pero recuerda: la base de datos remota solo necesita el puerto 3306 abierto para el servidor web.

5. ¿Puedo usar la misma base de datos para varios sitios WordPress?

  • , pero necesitarás prefijos de tabla diferentes en cada instalación de WordPress (configurado en wp-config.php con $table_prefix). No es recomendable para sitios grandes por rendimiento.

Conclusión

Configurar una base de datos remota para WordPress es una excelente manera de mejorar el rendimiento, la seguridad y la escalabilidad de tu sitio. Aunque el proceso puede parecer intimidante al principio, siguiendo estos pasos detallados podrás lograrlo sin problemas.

Recuerda siempre priorizar la seguridad: usa contraseñas fuertes, restringe el acceso por IP y mantén actualizado tu software. Si usas Syspanel, el puerto de acceso es el 2106, y desde allí puedes gestionar usuarios de base de datos y reglas de firewall de forma gráfica.

Ahora que ya sabes cómo hacerlo, ¡anímate a probarlo! Tu WordPress te lo agradecerá con mayor velocidad y tranquilidad.

¿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