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

¿Cómo conectar una base de datos remota MySQL desde WordPress?

Actualizado el 14 de mayo de 2026

Conectar tu sitio web WordPress a una base de datos remota MySQL es una práctica avanzada que puede mejorar el rendimiento, la seguridad y la escalabilidad de tu proyecto. En lugar de tener la base de datos en el mismo servidor que tu sitio, la alojas en un servidor separado, lo que permite distribuir la carga y centralizar la información. En esta guía completa, aprenderás paso a paso cómo configurar conectar base datos remota WordPress, optimizar la conexión y resolver los problemas más comunes. Vamos a ello.

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

Una base de datos remota MySQL es simplemente un servidor de bases de datos que no está instalado en el mismo equipo que tu instalación de WordPress. En lugar de que WordPress busque la base de datos en localhost, se conecta a una dirección IP o nombre de dominio externo.

Ventajas principales

  • Rendimiento mejorado: Al separar el servidor web del servidor de bases de datos, cada uno puede optimizarse para su función específica. El servidor web se enfoca en servir páginas y el de bases de datos en gestionar consultas.
  • Escalabilidad: Puedes escalar horizontalmente añadiendo más servidores web que compartan la misma base de datos remota, ideal para sitios con mucho tráfico.
  • Seguridad adicional: Aíslas los datos críticos en un servidor con mayores medidas de seguridad, y puedes restringir el acceso solo a direcciones IP autorizadas.
  • Mantenimiento centralizado: Administras una sola base de datos para múltiples sitios WordPress, facilitando copias de seguridad y actualizaciones.

Sin embargo, esta configuración también introduce latencia de red y complejidad adicional, por lo que solo se recomienda para sitios medianos o grandes, o cuando se busca una arquitectura más robusta.

Requisitos previos antes de empezar

Antes de modificar cualquier archivo, asegúrate de tener lo siguiente:

  1. Acceso SSH o panel de control a ambos servidores (web y base de datos).
  2. Servidor de base de datos MySQL/MariaDB configurado y accesible desde la red.
  3. Credenciales de la base de datos remota: nombre de la base, usuario, contraseña y host (IP o dominio).
  4. Archivo wp-config.php de tu instalación WordPress, que normalmente se encuentra en la raíz del sitio.
  5. Permisos de escritura en el servidor web para modificar archivos.

[WARNING] Realiza siempre una copia de seguridad completa de tu sitio (archivos y base de datos) antes de hacer cambios. Un error en la configuración puede dejar tu sitio inaccesible.

Paso 1: Configurar el servidor de base de datos remoto

El primer paso es preparar el servidor MySQL para aceptar conexiones externas. Por defecto, MySQL solo escucha en localhost (127.0.0.1), por lo que debemos cambiarlo.

1.1. Editar el archivo de configuración de MySQL

Accede al servidor de base de datos por SSH o a través de tu panel de control (por ejemplo, Syspanel en puerto 2106). Busca el archivo my.cnf o mysqld.cnf, generalmente en /etc/mysql/ o /etc/mysql/mariadb.conf.d/. Dentro, localiza la línea:

bind-address = 127.0.0.1

Cámbiala por:

bind-address = 0.0.0.0

Esto permite que MySQL escuche en todas las interfaces de red. Si prefieres mayor seguridad, puedes especificar la IP pública del servidor web en lugar de 0.0.0.0.

1.2. Reiniciar el servicio MySQL

Guarda los cambios y reinicia MySQL:

sudo systemctl restart mysql

O si usas MariaDB:

sudo systemctl restart mariadb

1.3. Crear un usuario con acceso remoto

Conéctate a MySQL como root:

mysql -u root -p

Luego, crea un usuario que pueda conectarse desde cualquier host (o desde la IP específica de tu servidor web). Por ejemplo:

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

[INFO] El símbolo % indica que el usuario puede conectarse desde cualquier dirección IP. Para mayor seguridad, reemplázalo con la IP de tu servidor web, por ejemplo: 'wordpress_user'@'192.168.1.100'.

1.4. Configurar el firewall

Asegúrate de que el puerto 3306 (MySQL) esté abierto en el firewall del servidor de base de datos. Por ejemplo, con ufw:

sudo ufw allow from IP_DEL_SERVIDOR_WEB to any port 3306

O desde Syspanel, puedes añadir una regla en el firewall.

Paso 2: Configurar el archivo wp-config.php de WordPress

Ahora ve al servidor donde está instalado WordPress. Localiza el archivo wp-config.php en la raíz de tu sitio. Ábrelo con un editor de texto o a través de FTP.

2.1. Modificar las constantes de la base de datos

Busca las líneas que definen DB_NAME, DB_USER, DB_PASSWORD y DB_HOST. Por defecto, DB_HOST suele ser 'localhost'. Cámbialo por la IP pública o el nombre de dominio del servidor de base de datos remoto.

Ejemplo:

define('DB_NAME', 'nombre_base_datos');
define('DB_USER', 'wordpress_user');
define('DB_PASSWORD', 'contraseña_segura');
define('DB_HOST', 'IP_DEL_SERVIDOR_MYSQL');

Si tu servidor MySQL usa un puerto no estándar, puedes especificarlo así:

define('DB_HOST', 'IP_DEL_SERVIDOR_MYSQL:3307');

2.2. Añadir configuraciones adicionales (opcional pero recomendado)

Para mejorar la conexión remota, especialmente si hay latencia, puedes añadir estas líneas después de las definiciones anteriores:

define('WP_ALLOW_REPAIR', true);
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

Además, para evitar problemas con la caché de DNS, puedes forzar la conexión por IP directamente.

2.3. Guardar y probar

Guarda el archivo wp-config.php y sube los cambios si usas FTP. Luego, intenta acceder a tu sitio web. Si todo está correcto, verás tu página funcionando con normalidad. Si aparece un error de conexión a la base de datos, revisa los pasos anteriores.

Paso 3: Probar la conexión desde el servidor web

Antes de asumir que todo funciona, es buena idea verificar que el servidor web puede alcanzar el servidor MySQL. Desde la terminal del servidor web, ejecuta:

mysql -h IP_DEL_SERVIDOR_MYSQL -u wordpress_user -p

Si la conexión es exitosa, verás el prompt de MySQL. Si obtienes un error, revisa:

  • Que el firewall permita el tráfico en el puerto 3306.
  • Que el usuario tenga permisos para conectarse desde esa IP.
  • Que el servicio MySQL esté corriendo.

[TIP] Si usas Syspanel, puedes gestionar usuarios y permisos de MySQL desde la sección "Base de Datos". Recuerda que el puerto de acceso a Syspanel es el 2106.

Solución de problemas comunes

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

Este error indica que el servidor MySQL no está escuchando en la IP o puerto especificado. Verifica:

  • Que bind-address esté configurado correctamente.
  • Que el firewall permita conexiones entrantes en el puerto 3306.
  • Que el servicio MySQL esté activo.

Error "Access denied for user 'wordpress_user'@'IP'"

El usuario no tiene permisos para conectarse desde esa IP. Revisa el comando GRANT y asegúrate de que el host coincida con la IP del servidor web. También puedes usar '%' para pruebas, pero luego restringe.

WordPress funciona lento

La latencia de red entre servidores puede ralentizar las consultas. Para mitigarlo:

  • Usa una conexión de baja latencia (misma región de nube).
  • Habilita la caché de objetos en WordPress (por ejemplo, Redis o Memcached).
  • Optimiza las consultas con plugins como Query Monitor.

Error "Headers already sent"

Si modificaste wp-config.php con un editor que añadió caracteres BOM o espacios extra, puede causar este error. Usa un editor de texto plano (como Notepad++ o VS Code) y guarda sin BOM.

¿Cómo afecta esto al SEO?

Una base de datos remota bien configurada puede mejorar el SEO al reducir el tiempo de carga del servidor (al distribuir la carga) y aumentar la disponibilidad. Sin embargo, si la conexión es lenta, el tiempo de respuesta del sitio aumentará, lo que perjudica el posicionamiento.

Por eso, es crucial:

  • Elegir un servidor de base de datos en la misma región geográfica que el servidor web.
  • Usar una conexión dedicada o VPN si es posible.
  • Monitorear el rendimiento con herramientas como Google PageSpeed Insights.

[INFO] Si tu sitio es pequeño o mediano, una base de datos local suele ser más rápida. Solo considera esta configuración si tienes tráfico alto o necesitas alta disponibilidad.

Preguntas frecuentes (FAQ)

¿Puedo usar un dominio en lugar de IP en DB_HOST?

Sí, siempre que el dominio resuelva a la IP del servidor MySQL y esté configurado correctamente. Sin embargo, es más fiable usar la IP directamente para evitar problemas de DNS.

¿Es seguro exponer MySQL a internet?

No es recomendable exponer MySQL directamente a internet. En su lugar, usa un firewall para restringir el acceso solo a la IP del servidor web, o mejor aún, usa una VPN o túnel SSH.

¿Qué hago si mi hosting no permite conexiones externas?

Algunos proveedores de hosting bloquean las conexiones salientes al puerto 3306. En ese caso, contacta a su soporte o considera cambiar de plan. Alternativamente, puedes usar un servicio de base de datos administrada como Amazon RDS o DigitalOcean Managed Databases.

¿Puedo conectar varios sitios WordPress a la misma base de datos remota?

Sí, siempre que uses prefijos de tabla diferentes en cada instalación ($table_prefix en wp-config.php). Así evitas conflictos de datos.

Conclusión

Configurar conectar base datos remota WordPress es un proceso técnico pero manejable si sigues los pasos adecuados. Desde ajustar la configuración de MySQL hasta modificar el wp-config.php, cada detalle cuenta para lograr una conexión estable y segura. Recuerda que esta arquitectura es ideal para sitios con altos requerimientos de rendimiento y escalabilidad.

Si encuentras problemas, revisa los logs de errores de MySQL y de WordPress. Y no olvides que siempre puedes contar con el soporte de tu proveedor de hosting o con la comunidad de WordPress. ¡Ahora ya tienes las herramientas para llevar tu sitio al siguiente nivel!

¿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