Solucionar el error de conexión a la base de datos en WordPress (cPanel)
¡Hola! Si estás leyendo esto, es muy probable que hayas visto la temida pantalla blanca con el mensaje "Error establishing a database connection" (Error al establecer la conexión con la base de datos) en tu sitio web WordPress. No te preocupes, es uno de los errores más comunes y, por suerte, en la mayoría de los casos tiene una solución sencilla que puedes aplicar tú mismo desde cPanel sin necesidad de ser un experto en programación.
En esta guía extensa y paso a paso, vamos a desglosar todas las causas posibles y las soluciones para el error conexión base datos WordPress. Actuaremos como detectives, revisando desde los archivos de configuración hasta el estado de los servicios en tu servidor. Vamos a ello.
Entendiendo el problema: ¿Por qué ocurre este error?
Antes de lanzarnos a arreglar nada, es crucial entender qué significa este error. WordPress guarda toda su información (entradas, páginas, usuarios, ajustes) en una base de datos MySQL. Para conectarse a ella, utiliza un archivo llamado wp-config.php, que contiene las credenciales (nombre de la base de datos, usuario, contraseña y servidor).
Cuando ves el mensaje de WordPress database error cPanel, significa que WordPress no puede "hablar" con la base de datos. Esto puede deberse a tres razones fundamentales:
- Credenciales incorrectas: Los datos en
wp-config.phpno coinciden con los que creó tu proveedor de hosting. - Base de datos corrupta o dañada: Los datos internos de las tablas de WordPress están rotos.
- Servidor de base de datos caído o sobrecargado: El servicio MySQL (o MariaDB) no está funcionando en el servidor.
Vamos a revisar cada una de estas posibilidades en orden, de la más simple a la más compleja.
Fase 1: La solución rápida (Reiniciar y verificar el estado)
A veces la solución es más simple de lo que pensamos. Antes de tocar archivos, prueba estos pasos:
1. Revisa si el problema es general
A veces el problema no es tu sitio, sino el servidor. Si tienes acceso a cPanel, intenta abrir otro sitio web que esté alojado en el mismo servidor (si tienes uno). Si todos fallan, es un problema del servidor.
2. Reinicia el servicio de base de datos (si tienes acceso root)
En la mayoría de los planes de hosting compartido, no podrás hacer esto. Sin embargo, si tienes un VPS o un servidor dedicado, accede por SSH (o por el administrador del servidor) y ejecuta:
systemctl restart mysql
# o en algunos sistemas
systemctl restart mariadb
[WARNING]: Si usas un hosting compartido, no intentes esto, ya que no tienes permisos y podrías afectar a otros usuarios. Contacta directamente con el soporte de tu proveedor.
3. Verifica si el puerto de conexión es el correcto
En cPanel, el puerto de MySQL suele ser el 3306. Sin embargo, algunos hosts usan puertos alternativos. Esto lo veremos en el siguiente paso, pero tenlo en cuenta.
Fase 2: Revisar el archivo wp-config.php (La causa más común)
Este es el primer lugar donde debemos mirar. El archivo wp-config.php se encuentra en la carpeta raíz de tu instalación de WordPress (normalmente public_html).
Cómo acceder al archivo
- Entra a tu cPanel.
- Busca la sección "Archivos" y haz clic en "Administrador de archivos".
- Navega hasta
public_html(o la carpeta donde esté instalado WordPress). - Busca el archivo
wp-config.php. Haz clic derecho sobre él y selecciona "Editar".
¿Qué debo buscar?
Dentro del archivo, busca las líneas que se ven así:
// ** Ajustes de MySQL ** //
define( 'DB_NAME', 'tu_usuario_wpdb' );
define( 'DB_USER', 'tu_usuario_wpuser' );
define( 'DB_PASSWORD', 'tu_contraseña_secreta' );
define( 'DB_HOST', 'localhost' );
Estas son las credenciales. Ahora, vamos a verificarlas una por una:
-
DB_NAME, DB_USER y DB_PASSWORD: Estas credenciales las encuentras en cPanel. Ve a la sección "Bases de datos" y haz clic en "Bases de datos MySQL".
- Ahí verás una lista de bases de datos y usuarios. Compara que el nombre de la base de datos y el usuario coincidan exactamente.
- Si no recuerdas la contraseña, no la puedes ver (está encriptada). La solución es cambiarla. En la misma página, busca el usuario y haz clic en "Cambiar contraseña". Crea una nueva y pégala en el archivo
wp-config.php. - Importante: Asegúrate de que el usuario tiene TODOS LOS PRIVILEGIOS sobre la base de datos. En cPanel, en la sección "Bases de datos MySQL", desplázate hacia abajo hasta "Añadir usuario a la base de datos". Verifica que el usuario esté vinculado a la base de datos correcta y que tenga marcada la casilla "TODOS LOS PRIVILEGIOS". Si no, haz clic en "Añadir" y selecciónalos.
-
DB_HOST: Este es un punto crítico. La mayoría de las veces es
localhost, pero en hosts como Hostinger o SiteGround, suele ser algo comolocalhosto una dirección específica comomysql.hosting.com. Si tu proveedor te dio una dirección de host específica para MySQL, úsala. Si no, déjalo comolocalhost. -
Guarda los cambios: Después de modificar el archivo, haz clic en "Guardar cambios" en la esquina superior derecha y recarga tu sitio web.
[TIP]: Si no estás seguro de qué escribir en DB_HOST, contacta al soporte de tu hosting. Es la única forma de saberlo con seguridad.
Fase 3: Reparar la base de datos (Si las credenciales son correctas)
Si las credenciales son correctas y el error persiste, es posible que la base de datos esté dañada. WordPress tiene una herramienta integrada para reparar tablas.
Activar el modo de reparación
- Vuelve a editar el archivo
wp-config.php. - Busca la línea que dice
define( 'WP_DEBUG', false );o similar. - Justo antes de la línea que dice
/* ¡Eso es todo! */, añade la siguiente línea:
define('WP_ALLOW_REPAIR', true);
- Guarda el archivo.
- Ahora, ve a tu navegador y escribe esta URL:
tusitio.com/wp-admin/maint/repair.php(reemplazatusitio.comcon tu dominio). - Verás una página que te ofrece dos opciones: "Reparar base de datos" y "Reparar y optimizar base de datos". Haz clic en la primera.
- Espera unos segundos. El sistema intentará arreglar las tablas dañadas.
[WARNING]: MUY IMPORTANTE: Una vez que la reparación haya terminado, ELIMINA esa línea de código que añadiste. Dejar WP_ALLOW_REPAIR activo es un riesgo de seguridad enorme, ya que cualquiera podría acceder a esa URL y dañar tu base de datos.
Reparar desde cPanel (phpMyAdmin)
Si el método anterior no funciona o prefieres hacerlo a través de cPanel, puedes usar phpMyAdmin:
- En cPanel, busca la sección "Bases de datos" y haz clic en "phpMyAdmin".
- En el panel izquierdo, selecciona tu base de datos.
- Verás una lista de tablas (como
wp_posts,wp_options, etc.). Haz clic en la casilla de verificación en la parte superior para seleccionar todas las tablas. - En el menú desplegable inferior (que dice "Con seleccionados:"), elige "Reparar tabla".
- Esto ejecutará una consulta SQL que intentará reparar las tablas. Si alguna falla, te dará un mensaje de error específico.
Fase 4: Comprobar el espacio en disco y los límites del servidor
A veces, el error conexión base datos WordPress no es un problema de credenciales, sino de recursos. Si tu base de datos ocupa demasiado espacio o el servidor está sobrecargado, MySQL se niega a conectarse.
Verificar el espacio en disco
- En cPanel, mira la barra lateral derecha. Verás "Uso de disco". Si está al 100% o muy cerca, ese es el problema.
- Ve al "Administrador de archivos" y revisa si hay archivos basura, como copias de seguridad antiguas en
public_htmlo en la carpetatmp. Elimina lo que no necesites.
Verificar los límites de memoria de PHP
Aunque es menos común, un límite de memoria demasiado bajo también puede causar este error. Puedes intentar aumentarlo editando el archivo wp-config.php añadiendo:
define('WP_MEMORY_LIMIT', '256M');
Añade esta línea justo después de la línea de DB_HOST. Guarda y prueba.
Fase 5: Soluciones avanzadas (Para usuarios con más experiencia)
Si nada de lo anterior funciona, el problema puede ser más profundo.
1. Verificar los logs de error de MySQL
En cPanel, busca la sección "Métricas" y haz clic en "Errores" o "Registros de errores". Busca cualquier mención a MySQL o a tu base de datos. Los errores te darán pistas exactas sobre qué está fallando.
2. Revisar si el prefijo de las tablas es correcto
En el archivo wp-config.php, busca una línea como esta:
$table_prefix = 'wp_';
Asegúrate de que el prefijo coincide con el de tus tablas en phpMyAdmin. Si ves que tus tablas se llaman miweb_posts y el prefijo es wp_, el problema es ese. Deberías cambiarlo por miweb_. (Esto es raro, pero puede pasar si importaste una web manualmente).
3. Contactar con el soporte del hosting
Si has llegado hasta aquí, es hora de pedir ayuda profesional. Contacta con el soporte de tu proveedor de hosting y diles que has verificado las credenciales, has reparado la base de datos y el problema persiste. Ellos tendrán acceso a los logs del servidor y podrán ver si MySQL se está cayendo por falta de memoria o por un ataque DDoS.
Preguntas Frecuentes (FAQ) sobre el error de conexión
Aquí tienes algunas de las preguntas que más nos hacen los usuarios con este problema:
¿Qué significa "Error establishing a database connection"?
Significa que WordPress no puede conectarse a la base de datos donde se almacena todo el contenido de tu web. Las causas más comunes son credenciales incorrectas en wp-config.php, una base de datos corrupta o un servidor MySQL caído.
¿Cómo sé si mi base de datos está dañada?
Puedes intentar acceder a tu base de datos desde phpMyAdmin. Si al intentar abrir una tabla te da un error como "Table doesn't exist" o "Table is marked as crashed", está dañada. La reparación que mencionamos en la Fase 3 es la solución.
¿Puedo perder mis datos si reparo la base de datos?
La herramienta de reparación de WordPress y la de phpMyAdmin intentan arreglar los índices y los datos corruptos. No deberías perder contenido, pero siempre es recomendable hacer una copia de seguridad antes de realizar cualquier acción de reparación. Puedes hacer una copia completa de la base de datos desde cPanel > "Copias de seguridad".
¿Por qué mi hosting usa un puerto diferente para MySQL?
Algunos proveedores de hosting (especialmente los que usan servidores compartidos más seguros) no usan el puerto estándar 3306. En lugar de eso, te asignan un puerto específico en tu cuenta. Esta información la encontrarás en el correo de bienvenida de tu hosting o en la sección de "Detalles de la cuenta" dentro de cPanel. Si tu DB_HOST es localhost y no funciona, prueba a poner localhost:tu_puerto (ej. localhost:3307).
¿Qué pasa si el error es solo en el área de administración?
Si el error solo ocurre en /wp-admin, pero tu página principal funciona, el problema suele estar en un plugin o tema que está haciendo consultas demasiado pesadas. Intenta desactivar todos los plugins renombrando la carpeta wp-content/plugins a wp-content/plugins_backup desde el Administrador de archivos. Si el error desaparece, activa los plugins uno a uno para encontrar al culpable.
¿Puedo arreglar este error desde la base de datos sin tocar código?
Sí, usando phpMyAdmin. Como explicamos en la Fase 3, puedes seleccionar todas las tablas y elegir la opción "Reparar". Esto es un método muy efectivo y no requiere tocar código.
Conclusión: Resumen de pasos para solucionar el error
Para terminar, aquí tienes un resumen de la "hoja de ruta" que debes seguir si te encuentras con este problema:
- Reinicia el servicio MySQL si tienes acceso a un VPS.
- Verifica las credenciales en
wp-config.phpcomparándolas con las de cPanel. - Cambia la contraseña del usuario de la base de datos en cPanel y actualízala en
wp-config.php. - Revisa el
DB_HOST(prueba conlocalhosto con el host específico de tu proveedor). - Activa el modo de reparación de WordPress (
WP_ALLOW_REPAIR) y ejecuta la URLmisd.com/wp-admin/maint/repair.php. No olvides desactivarlo después. - Repara las tablas desde phpMyAdmin.
- Revisa el espacio en disco y los límites de memoria.
- Si todo falla, contacta con tu proveedor de hosting.
[INFO]: Recuerda que en la mayoría de los casos, este error se soluciona en los pasos 2 y 3. La causa más habitual es un cambio de contraseña de la base de datos que no se ha actualizado en el archivo wp-config.php.
[TIP]: Para evitar este problema en el futuro, te recomendamos que configures un sistema de copias de seguridad automáticas. La mayoría de los planes de cPanel incluyen esta opción en "Copias de seguridad". Así, si algo sale mal, puedes restaurar tu web en minutos.
Esperamos que esta guía extensa te haya sido de gran ayuda. Recuerda que la paciencia es clave. Ve paso a paso y, si te atascas, no dudes en buscar ayuda profesional. ¡Tu sitio web volverá a estar en línea en poco tiempo!
