Hola.
Hoy vamos a ver cómo podemos personalizar la página que muestra WordPress cuando no puede establecer conexión con la base de datos.
Cuando WordPress no consigue conectarse con MySQL o MariaDB, normalmente nos encontramos con el clásico mensaje:
Error establishing a database connection
El mensaje es técnicamente correcto, pero quizá no sea la mejor experiencia para el usuario final. Si estamos desarrollando una web para un cliente, podemos preferir mostrar un mensaje más natural y menos técnico.
Por ejemplo:

Antes de modificar nada
Como siempre, antes de realizar cambios en archivos de WordPress, haz una copia de seguridad.
El método antiguo: modificar el core de WordPress
En versiones antiguas de este artículo utilizábamos un método muy directo: modificar el archivo:
wp-includes/functions.php
Dentro del archivo buscábamos el texto:
Error establishing a database connection
y encontrábamos una llamada similar a:
wp_die( '<h1>' . __( 'Error establishing a database connection' ) . '</h1>', __( 'Database Error' ) );
La función wp_die() detiene la ejecución de WordPress y muestra un mensaje al usuario. En este caso se utiliza para informar de que se ha producido un error grave que impide continuar con la ejecución normal de la aplicación.
Podríamos sustituir el contenido por nuestro propio mensaje e incluso modificar completamente el HTML y los estilos mostrados.
No recomiendo hacerlo así en una instalación moderna
Modificar directamente archivos situados dentro de wp-includes significa modificar el core de WordPress. Una actualización posterior puede sobrescribir nuestros cambios y obligarnos a volver a modificar el archivo.
¿Por qué no deberíamos modificar el core?
El problema no es que el código anterior no funcione. El problema es el mantenimiento.
Si modificamos directamente:
wp-includes/functions.php
estamos creando una modificación que WordPress no espera encontrar ahí.
Cuando llegue una actualización del core, nuestro cambio puede desaparecer.
Además, si estamos intentando diagnosticar un problema, tener archivos del core modificados puede complicar posteriormente la comparación con una instalación limpia de WordPress.
La regla es sencilla
Si podemos conseguir el mismo resultado mediante un hook, un plugin o una capa propia de nuestra aplicación, no toquemos el core.
¿Qué está ocurriendo realmente?
Cuando WordPress muestra este error, no significa necesariamente que el problema esté en el propio WordPress.
Puede deberse, entre otras cosas, a:
- MySQL o MariaDB no está funcionando.
- Los datos de conexión de
wp-config.phpson incorrectos. - El usuario de la base de datos no tiene los permisos necesarios.
- El servidor de base de datos no es accesible.
DB_HOSTno corresponde con la configuración del servidor.- La base de datos está caída o saturada.
- Existe algún problema de red entre PHP y el servidor de base de datos.
Por tanto, personalizar el mensaje no soluciona el problema. Simplemente cambia lo que ve el usuario mientras nosotros solucionamos la causa real.
No confundamos presentación con solución
Si WordPress no puede conectarse a la base de datos, lo primero debe ser averiguar por qué no puede conectarse. Cambiar el texto del error no arregla MySQL, MariaDB ni la configuración de WordPress.
¿Y si necesitamos personalizar la experiencia del usuario?
Aquí conviene separar dos situaciones.
Si queremos simplemente personalizar el mensaje técnico de WordPress, no merece la pena modificar el core para conseguirlo.
En cambio, si estamos desarrollando una aplicación o un sistema propio alrededor de WordPress, podemos controlar la experiencia de usuario desde nuestra propia capa de aplicación, servidor o infraestructura.
También podemos utilizar soluciones de monitorización y páginas de mantenimiento independientes para determinados escenarios.
La idea importante es que el usuario final no necesita conocer los detalles internos de nuestra infraestructura.
Para él puede ser suficiente con algo como:
Estamos realizando unas tareas de mantenimiento.
Por favor, inténtalo de nuevo dentro de unos minutos.
Mientras tanto, nosotros podemos revisar los logs y determinar qué está ocurriendo realmente.
Un detalle importante: el error 500
En el artículo original también comentábamos que algunas herramientas como Redirect Path podían mostrar un error 500 Internal Server Error al encontrarse con esta situación.
Esto es perfectamente posible dependiendo de cómo se produzca el fallo y de la respuesta que genere el servidor.
Un error de conexión con la base de datos no implica necesariamente que el servidor web haya dejado de funcionar. El servidor puede estar respondiendo correctamente mientras PHP no consigue completar la petición porque WordPress no puede acceder a MySQL o MariaDB.
Por eso, cuando investigamos un problema de este tipo, conviene revisar la cadena completa:
Navegador → servidor web → PHP → WordPress → MySQL/MariaDB
El fallo puede encontrarse en cualquiera de esos puntos.
¿Qué debemos hacer entonces?
Si nos encontramos con el mensaje:
Error establishing a database connection
yo seguiría este orden:
- Comprobar que MySQL o MariaDB está funcionando.
- Revisar los valores de
DB_NAME,DB_USER,DB_PASSWORDyDB_HOST. - Comprobar que el usuario tiene permisos sobre la base de datos.
- Revisar los logs de PHP y del servidor.
- Comprobar si el servidor de base de datos está accesible.
- Revisar si existe algún problema de recursos o saturación.
- Una vez solucionado el problema, comprobar que WordPress vuelve a funcionar correctamente.
Diagnosticar antes de tocar
Un mensaje de error feo puede ser molesto, pero es mucho más útil tener información sobre el problema que empezar a modificar archivos del core sin saber qué está ocurriendo.
En resumen
El truco de modificar:
wp-includes/functions.php
para cambiar:
Error establishing a database connection
es un método que puede funcionar técnicamente, pero no es una buena práctica para una instalación moderna de WordPress.
Si queremos personalizar la experiencia del usuario, debemos intentar hacerlo sin modificar el core.
Y si aparece el error, lo realmente importante es investigar la causa de la pérdida de conexión con la base de datos.
La solución no es esconder el error.
La solución es averiguar por qué WordPress no puede hablar con su base de datos y corregirlo.
En este otro artículo tienes una recopilación de problemas habituales de WordPress y sus posibles soluciones:
Consejos útiles para WordPress
Un saludo.
Visitas: 20
Automation & Data Specialist | Web Development | Data Processing & Integration
