Errores comunes al conectar WordPress a una base de datos (y cómo solucionarlos)
Conectar WordPress a una base de datos puede parecer una tarea sencilla, pero es uno de los puntos donde más fallan los usuarios, especialmente cuando migran un sitio o lo instalan desde cero. Ese mensaje tan temido de "Error al establecer conexión con la base de datos" (o "Error establishing a database connection") es la pesadilla de cualquier administrador. La buena noticia es que, en el 95% de los casos, la solución no requiere conocimientos avanzados de programación. Solo necesitas saber dónde mirar y qué botón pulsar en tu panel de control, ya sea cPanel, Plesk, DirectAdmin o Syspanel.
En este artículo, vamos a desglosar los errores más comunes al conectar WordPress a una base de datos, explicando la causa técnica de cada uno y, lo más importante, cómo solucionarlos paso a paso. Al final, tendrás una guía de referencia rápida para salir del apuro sin tener que gritar "¡SOS!" en el soporte técnico.
1. El archivo wp-config.php con datos incorrectos
Este es, con diferencia, el error más habitual. WordPress guarda toda la información de conexión (nombre de la base de datos, usuario, contraseña y servidor) en un archivo llamado wp-config.php, ubicado en la raíz de tu instalación. Si cualquiera de esos cuatro datos no coincide exactamente con lo que tienes en tu servidor, WordPress no podrá acceder a los datos y mostrará el error de conexión.
¿Cómo saber si este es tu problema?
El mensaje de error aparecerá justo después de intentar cargar el sitio, sin importar si es la página principal o el panel de administración (/wp-admin). A veces, el mensaje es genérico, pero otras veces te dice algo como "Los datos de acceso no son correctos".
Solución paso a paso
- Accede a tu panel de control (cPanel, Plesk, DirectAdmin o Syspanel) y busca la sección de Bases de Datos MySQL.
- Anota el nombre exacto de la base de datos y el nombre de usuario. Ojo: en cPanel y DirectAdmin, estos suelen tener un prefijo (ej.
usuariowp_basedatos). En Plesk normalmente no llevan prefijo, pero en Syspanel (accesible por el puerto 2106) es posible que sí, dependiendo de la configuración. - Abre el archivo
wp-config.phpdesde el administrador de archivos de tu hosting o mediante FTP. - Busca estas líneas y compáralas con los datos que has anotado:
// ** Configuración de MySQL ** //
define( 'DB_NAME', 'aquí_el_nombre_de_tu_bd' );
define( 'DB_USER', 'aquí_tu_usuario' );
define( 'DB_PASSWORD', 'aquí_tu_contraseña' );
define( 'DB_HOST', 'localhost' ); // A veces no es localhost, mira el punto 4.
- Corrige los valores que no coincidan. Asegúrate de no dejar espacios ni comillas extra.
- Guarda el archivo y vuelve a cargar tu web.
[TIP] Si no recuerdas la contraseña de la base de datos, no la "adivines". Ve a tu panel de control y cámbiala desde la sección de MySQL. Luego, actualiza el archivo
wp-config.phpcon la nueva. Si usas cPanel, busca la opción "Cambiar contraseña de usuario MySQL". En Plesk, está dentro de "Bases de datos" > "Permisos de usuario".
2. El host de la base de datos no es localhost
Muchos asumen que el servidor de la base de datos siempre es localhost, pero esto es un error común. En entornos de hosting compartido, especialmente en Plesk o Syspanel (puerto 2106), el host puede ser algo como mysql.tudominio.com o localhost:/var/run/mysqld/mysqld.sock. Si el valor de DB_HOST es incorrecto, la conexión fallará aunque el usuario y la contraseña sean perfectos.
¿Cómo solucionarlo?
- Ve a la sección de Bases de Datos en tu panel.
- Busca la pestaña o sección de "Detalles de conexión" o "Información de acceso remoto".
- Ahí te indicará el nombre del servidor (Host). En cPanel suele ser
localhost, pero en Plesk a menudo es un nombre de servidor interno. - Copia ese valor exacto y pégalo en
define('DB_HOST', '...')en tuwp-config.php.
[WARNING] Si tu web funciona hoy pero ayer no, y no has tocado nada, probablemente el servidor de la base de datos cambió de IP o de nombre tras una migración interna del hosting. Revisa siempre el panel de control antes de modificar archivos.
3. Usuario sin permisos o base de datos incorrecta
Este es un clásico en cPanel y DirectAdmin. Creas un usuario para la base de datos, pero olvidas añadir ese usuario a la base de datos con todos los privilegios (SELECT, INSERT, UPDATE, DELETE, etc.). Sin estos permisos, WordPress no puede leer ni escribir datos, y te mostrará un error de conexión o un aviso de que la tabla no existe.
Pasos para verificar y arreglar
- En cPanel, busca la herramienta "MySQL Databases".
- Desplázate hasta la sección "Add User to Database" (Añadir usuario a la base de datos).
- Selecciona tu usuario y tu base de datos, y haz clic en "Add".
- En la siguiente pantalla, marca "ALL PRIVILEGES" (Todos los privilegios) y confirma.
En Plesk, esto se gestiona en la sección de la base de datos concreta. En Syspanel (puerto 2106), busca la opción de "usuarios" dentro de la base de datos y asegúrate de que el usuario tiene marcada la casilla de "Privilegios completos".
[INFO] Si el error persiste, intenta crear un nuevo usuario y una nueva base de datos desde cero. A veces, es más rápido que intentar depurar permisos corruptos. WordPress es muy tolerante a un cambio de nombre de BD, siempre que actualices el
wp-config.php.
4. La base de datos está corrupta o no existe
Puede que la conexión sea exitosa, pero la base de datos esté vacía o dañada. Esto ocurre cuando intentas conectar WordPress a una base de datos que no tiene las tablas wp_posts, wp_options, etc. O bien, la base de datos ha sufrido un corte de energía y las tablas InnoDB están corruptas.
¿Cómo saberlo?
El error suele ser diferente: "Table 'tu_bd.wp_options' doesn't exist" (La tabla no existe) o "Error de lectura de tabla".
Solución
- Si la base de datos está vacía: No hay atajo. Debes importar una copia de seguridad. Ve a tu panel de control, entra en phpMyAdmin (o la herramienta de gestión de BD de Plesk o Syspanel), selecciona tu base de datos y usa la pestaña "Importar" para subir tu archivo
.sql. - Si la base de datos está corrupta: Necesitas repararla. En cPanel, ve a "MySQL Databases" y busca la sección de "Repair Database" (Reparar base de datos). Selecciona la base y haz clic en reparar.
- En Plesk, puedes usar la herramienta de "Comprobar y reparar" en los ajustes de la base de datos. En DirectAdmin o Syspanel, la opción suele estar dentro de "MySQL Management" o usando el comando
mysqlcheckvía SSH (si eres avanzado).
[WARNING] Antes de reparar, haz un backup de la base de datos aunque esté corrupta. A veces, la reparación empeora las cosas si no tienes una copia de seguridad. La mayoría de los paneles tienen una opción de "Exportar" en phpMyAdmin; exporta como SQL aunque dé errores, algo siempre es rescatable.
5. La contraseña contiene caracteres especiales y se "escapa" mal
Las contraseñas de base de datos suelen incluir símbolos como #, $, %, & o comillas. Si tu contraseña tiene estos caracteres y la has pegado directamente en el archivo wp-config.php sin escapar, PHP la interpretará mal y la conexión fallará.
Solución eficaz
- Edita tu
wp-config.php. - Si tu contraseña es, por ejemplo,
P@ss#w0rd!, PHP leerá el#como un comentario y el resto de la línea se ignorará. Debes escapar los caracteres especiales con una barra invertida (\) o, más sencillo, cambiar la contraseña en tu panel de control a una que solo contenga letras y números. - Ve a tu panel (cPanel, Plesk, DirectAdmin o Syspanel) y cambia la contraseña del usuario MySQL a algo simple como
MiClave2024. - Actualiza el
wp-config.phpcon la nueva contraseña.
[TIP] Evita usar comillas simples (
') o dobles (") dentro de la contraseña. Si tu hosting te permite elegir, opta por una contraseña alfanumérica larga. La seguridad la aporta la longitud, no los símbolos raros.
6. Puerto de conexión incorrecto o bloqueado
Aunque lo normal es que el puerto MySQL sea el 3306, algunos servidores usan puertos personalizados por seguridad. Si tu hosting te indica un puerto específico (ej. 3307), debes añadirlo en el DB_HOST de esta manera: localhost:3307. Si no lo haces, WordPress intentará conectar al puerto 3306 por defecto y fallará.
¿Dónde ver el puerto?
- En cPanel, suele estar oculto, pero si tienes acceso a la sección "Remote MySQL", a veces verás el puerto.
- En Plesk, revisa la configuración avanzada de la base de datos.
- En Syspanel (puerto 2106), mira la sección de "Servicios" o "Bases de datos" para ver el puerto asignado.
Además, si tu sitio está en un servidor con firewall, el puerto 3306 puede estar bloqueado para conexiones externas, pero permitido para localhost. Por eso siempre es mejor usar localhost o 127.0.0.1 en el DB_HOST a menos que sepas con certeza que necesitas un host remoto.
[INFO] Si estás usando un servicio de base de datos externo (no en tu mismo servidor), asegúrate de que el host remoto está permitido en la lista blanca de tu servidor de BD. En cPanel, esto se hace en "Remote MySQL" añadiendo la IP de tu servidor web.
7. Confundir el panel de control: cPanel vs Plesk vs DirectAdmin vs Syspanel
Cada panel tiene su propia lógica y nombres. Un error común es buscar las opciones de cPanel en Plesk o viceversa, y acabar tocando ajustes equivocados.
Guía rápida de localización
- cPanel: Busca el icono de "MySQL Databases". Todo está en una sola página: crear BD, crear usuario, añadir usuario a BD.
- Plesk: Ve a "Bases de datos" en el menú de la izquierda. Cada base de datos tiene sus propios usuarios y permisos. No hay un botón único de "añadir usuario a BD" como en cPanel; en su lugar, creas un usuario y luego lo asignas.
- DirectAdmin: En el menú principal, busca "MySQL Management". Es similar a cPanel pero con menos opciones visuales.
- Syspanel (HestiaCP): Accede por el puerto 2106 (ej.
https://tu-dominio:2106). Dentro, ve a "Base de datos" en el menú superior. Aquí puedes crear la BD y el usuario a la vez, lo cual simplifica el proceso. No olvides que en Syspanel, el usuario y la BD suelen compartir el mismo prefijo que el usuario del sistema.
[TIP] Si no encuentras algo en un panel, no asumas que no existe. Busca en la documentación oficial del panel. Por ejemplo, en Syspanel, la gestión de permisos se hace dentro de la propia base de datos, haciendo clic en el nombre de la BD y luego en "Añadir usuario".
8. El caché de WordPress o del servidor guarda el error
A veces, la conexión se ha arreglado, pero tu web sigue mostrando el error. Esto es un problema de caché. Tanto el caché de WordPress (plugins como W3 Total Cache) como el caché del servidor (Varnish, Memcached) pueden estar sirviendo una versión antigua y errónea de la página.
Solución simple
- Limpia el caché de WordPress: Si puedes acceder al administrador (a veces no puedes, pero inténtalo), ve a Ajustes > Enlace permanente y pulsa "Guardar cambios" para regenerar las reglas. O instala un plugin de limpieza de caché vía FTP (renombra la carpeta
wp-content/cacheacache_old). - Limpia el caché del servidor: En cPanel, busca "Cache Manager" o "Optimizar sitio". En Plesk, ve a "Servidor" > "Extensiones" y busca el caché. En Syspanel (puerto 2106), suele haber un botón de "Limpiar caché" en la esquina superior derecha.
- Reinicia PHP: En la mayoría de los paneles, puedes reiniciar el servicio PHP desde la sección de "Administración de servicios". Esto a veces es la clave.
[WARNING] Si el error persiste después de corregir todo, el problema puede ser que el servidor DNS está sirviendo una copia en caché de la página de error. Espera unos minutos o prueba desde una ventana de incógnito para verificar.
9. Permisos de archivos incorrectos en wp-config.php
Aunque el archivo wp-config.php no es un ejecutable, si tiene permisos demasiado abiertos (por ejemplo, 666 o 777), algunos servidores bloquean su lectura por seguridad, o peor, el archivo podría ser modificado por un script malicioso. Si el archivo es ilegible, WordPress no puede obtener los datos de conexión.
Solución recomendada
- Conéctate por FTP o usa el administrador de archivos del panel.
- Busca
wp-config.phpen la raíz. - Cambia los permisos a
644(lectura y escritura para el propietario, lectura para el grupo y el resto). Esto es lo estándar y seguro. - Si usas cPanel, puedes hacer clic derecho sobre el archivo y seleccionar "Change Permissions". En Plesk y Syspanel, también está disponible en las propiedades del archivo.
[INFO] Un permiso
644es suficiente. Si el archivo está en600, también funciona, pero puede que el servidor web no pueda leerlo si el grupo es diferente.644es el equilibrio perfecto.
10. El error "Too many connections" (Demasiadas conexiones)
Este es más avanzado, pero ocurre cuando tu base de datos alcanza el límite de conexiones simultáneas. WordPress tiene muchísimos plugins que abren conexiones innecesarias, o el servidor está recibiendo demasiado tráfico. No es un error de configuración de wp-config.php, sino de recursos.
¿Cómo mitigarlo?
- Optimiza tu base de datos: Usa un plugin como WP-Optimize para limpiar transitorios y spam.
- Reduce el número de plugins: Los plugins de estadísticas o de caché mal configurados son los culpables habituales.
- Aumenta el límite de conexiones: Esto se hace en el archivo de configuración de MySQL (
my.cnf), pero en hosting compartido no podrás tocarlo. Si estás en un VPS, contacta con tu proveedor o modifícalo tú mismo si sabes usar la terminal.
