Cómo arreglar ‘Error al establecer una conexión con la base de datos’ en WordPress
Este tutorial abarca los siguientes temas:
“Error al establecer una conexión a la base de datos” es un error que te indica que tu sitio web de WordPress no puede conectarse a su base de datos. Puede parecer difícil de arreglar, pero afortunadamente solo hay un puñado de problemas que lo causan, y con un poco de investigación y resolución, puedes resolver el problema fácilmente.
Esta guía explicará qué significa “Error al establecer una conexión de base de datos”, describirá las causas más comunes y cómo solucionarlas.
¿Qué significa el “Error al establecer una conexión a la base de datos” de WordPress?
Antes de investigar el error, necesitamos entender cómo funciona WordPress. Como la mayoría de las aplicaciones CMS (Content Management System), consta de dos partes integrales: archivos y una base de datos.
Los archivos son el marco del sitio web y contienen las funcionalidades principales de WordPress, el contenido media, los temas y los plugins.
Por otro lado, la base de datos contiene la configuración personalizada del sitio web y contenido único. Todas las páginas, publicaciones, texto y diseño se registran como entradas en las tablas.
Los archivos se comunican con la base de datos a través de varias funciones PHP y MySQL y extraen los datos visualizados en las páginas web.
Por lo tanto, cuando tu sitio web no puede conectarse a la base de datos, no puede recuperar los datos necesarios para mostrar las páginas. WordPress te advierte del problema mostrando el mensaje “Error al establecer una conexión a la base de datos”, como se ve en la imagen a continuación.
¿Cuáles son las causas más comunes de “Error al establecer una conexión con la base de datos”?
Hay algunos escenarios diferentes en los que aparece el error. Los más comunes incluyen:
- Configuración de base de datos incorrecta en el archivo de configuración – unas credenciales de base de datos incorrectas son posiblemente la razón más común para una conexión de base de datos interrumpida. Si el nombre de la base de datos, nombre de usuario, contraseña o nombre de host son incorrectos, el sitio web no se conectará a la base de datos y devolverá “Error al establecer conexión con la base de datos”.
- Privilegios de usuario de base de datos insuficientes – Otra razón por la que ocurre el error es si el usuario de la base de datos no tiene suficientes privilegios, incluso si las credenciales son correctas. El usuario debe tener permiso para ejecutar todo tipo de operaciones MySQL en la base de datos.
- Tablas de base de datos dañadas – WordPress es un sistema altamente dinámico, y cada vez que realizas cambios en tu sitio web, las tablas de la base de datos se modifican. Agregar o eliminar plugins y temas crea nuevas tablas o elimina las existentes, nuevas páginas añaden nuevas entradas, etc.
Con tantas operaciones de MySQL que se realizan, ocasionalmente, las tablas pueden corromperse, lo que podría llevar a otra variación del “Error al establecer conexión con la base de datos” – “Una o más tablas de la base de datos no están disponibles”. - URLs del sitio web incorrectas – En raras ocasiones, el “Error al establecer una conexión a la base de datos” puede ser causado por URLs del sitio web incorrectas.
- Archivos de WordPress corruptos – Otra razón por la que ves el mensaje “Error al establecer una conexión a la base de datos” es que los archivos principales de WordPress de tu sitio web están corruptos. Esto podría deberse a una infección de malware, una actualización fallida o una transferencia de archivos incompleta al mover tu sitio manualmente.
- El servidor de la base de datos está caído o sobrecargado.
Cómo arreglar un “Error al establecer una conexión a la base de datos”
A primera vista, el error parece bastante intimidante y difícil de resolver. Sin embargo, generalmente se reduce a unos pocos ajustes clave, que se pueden comprobar y arreglar fácilmente.
Inspecciona el archivo wp-config.php de tu sitio web de WordPress
La configuración de la base de datos se almacena en el archivo de configuración de cada instalación de WordPress. Se llama wp-config.php y se encuentra en el directorio raíz de tu sitio web.
Para comprobar el archivo, inicia sesión en las carpetas del sitio web a través de FTP o el panel de tu hosting. Si eres usuario de SiteGround, navega a Site Tools > Sitio web > Gestor Archivos.
La carpeta raíz de cada sitio web es el directorio tudominio.com/public_html. En nuestro ejemplo, el nombre del sitio web es sg-testing.com, por lo que la carpeta es sg-testing.com/public_html.
Antes de hacer cualquier cambio, es mejor mantener una copia de seguridad del archivo por si acaso. Para hacerlo, haz clic derecho en el archivo, selecciona Copiar, y renombra la versión copiada a wp-config-backup.php.
Después de crear la copia de seguridad, selecciona el archivo wp-config.php y elige Editar.
El nombre de la base de datos, el usuario, la contraseña y el host se definen en las siguientes líneas de código:
// ** Configuración de la base de datos - Puedes obtener esta información de tu proveedor de alojamiento web ** //
/ ** El nombre de la base de datos para WordPress * /
define ('DB_NAME', 'nombre_de_la_base_de_datos_aquí');
/ ** Usuario de la base de datos * /
define ('DB_USER', 'usuario_aquí');
/ ** Contraseña de la base de datos * /
define ('DB_PASSWORD', 'contraseña_aquí');
/ ** Nombre de host de la base de datos * /
define ('DB_HOST', 'localhost');
Los valores de cada configuración deben coincidir con la base de datos, el usuario y la contraseña existentes en el servidor MySQL del sitio web. Después de aplicar los cambios, presiona el icono Guardar (icono del disquete).
Establecer el nombre de host de la base de datos correcto
El servidor MySQL está definido por la línea de código:
define ('DB_HOST', 'localhost');
Normalmente, el host de la base de datos está en el mismo servidor que los archivos del sitio web. Por lo tanto, el valor es “localhost” o “127.0.0.1” y la línea completa leerá:
define ('DB_HOST', 'localhost');
o
define ('DB_HOST', '127.0.0.1');
Si has configurado un host de base de datos remoto, debes reemplazar estos valores con el nombre de host correcto del servidor remoto.
Establecer el nombre correcto de la base de datos
Una vez establecido el host, comprueba los detalles de la base de datos en el servidor MySQL. Los usuarios de SiteGround pueden acceder fácilmente a la configuración de la base de datos MySQL desde Site Tools > Sitio web > MySQL .
Para comparar más fácilmente la configuración del archivo wp-config.php con los detalles de la base de datos MySQL, abre la sección MySQL en una nueva pestaña del navegador haciendo clic derecho en ella y seleccionando Abrir enlace en una pestaña nueva.
Las bases de datos existentes en el servidor MySQL se enumeran en la pestaña Bases de datos bajo Gestionar bases de datos.
La base de datos listada debe coincidir con la definida en el archivo wp-config.php.
Copia el nombre de la base de datos de MySQL > Bases de datos y pégalo en la línea de código en wp-config.php:
define ('DB_NAME', 'nombre_de_la_base_de_datos_aquí');
Establecer el nombre de usuario correcto de la base de datos
Para ver el usuario de la base de datos, haz clic en el enlace bajo la columna Usuarios de la base de datos.
Aparecerá una ventana emergente con una lista de todos los usuarios con privilegios para modificar la base de datos del sitio web. Resalta el nombre de usuario en la columna Usuario y cópialo.
Vuelve a editar el archivo wp-config.php y pega el nombre en la línea:
define ('DB_USER', 'usuario_aquí');
Si no hay un usuario adjunto a la base de datos, no habrá ningún enlace en la columna Usuario. Haz clic en el icono Añadir nuevo usuario debajo de la columna Acciones para añadir un usuario existente a la base de datos del sitio web.
En la ventana emergente, selecciona uno de los nombres del menú desplegable Usuarios, marca el botón de opción Todos los privilegios, y presiona Confirmar.
Una vez que el usuario esté adjunto a la base de datos, puedes copiar su nombre y pegarlo en el archivo wp-config.php .
Si no hay usuarios existentes, abre la sección Site Tools > Sitio web > MySQL > Usuarios. Puedes crear un nuevo usuario pulsando el botón Crear Usuario.
El nuevo nombre de usuario aparecerá en la sección Gestionar usuarios en la pestaña Usuarios. Haz clic en el icono Añadir nueva base de datos para adjuntar el usuario a la base de datos del sitio web.
En la ventana emergente, selecciona la base de datos del sitio web, marca el botón de radio Todos los privilegios, y presiona Confirmar.
Luego puedes copiar el nuevo nombre de usuario y pegarlo en la línea respectiva en wp-config.php.
Establecer la contraseña correcta del usuario de la base de datos
Después de agregar el usuario en wp-config.php, debes asegurarte de que la contraseña del usuario en el archivo coincida con su contraparte en MySQL. Copia la cadena de contraseña de la línea en wp-config.php:
define ('DB_PASSWORD', 'contraseña_aquí');
Después de copiar la contraseña, vuelve a Sitio web > MySQL > Usuarios, presiona menú de tres puntos, y selecciona Cambiar contraseña.
Pega la contraseña en el campo Nueva Contraseña y presiona Confirmar.
El error debería desaparecer al recargar el sitio web si todas las credenciales están configuradas correctamente.
Comprueba si el usuario de la base de datos tiene los privilegios correctos
Para comprobar los privilegios del usuario, ve a Site Tools > Sitio web > MySQL > Usuarios, y encuentra al usuario en la sección Gestionar usuarios. Haz clic en el enlace bajo la columna Acceso a base de datos, que abre una nueva ventana emergente.
Pulsa el icono Administrar el acceso para abrir una nueva ventana donde se gestionan las opciones de acceso.
Para establecer todos los permisos necesarios, selecciona el botón de radio Todos los privilegios y haz clic en el botón Confirmar.
Reparar la base de datos
Si tu base de datos está dañada, necesitas repararla y, afortunadamente, WordPress tiene un modo de reparación incorporado.
Para activarlo, debes editar el archivo wp-config.php de tu sitio web a través de FTP o el panel de control de tu hosting.
Los usuarios de SiteGround pueden editar el archivo navegando a Site Tools > Sitio web > Gestor archivos. El archivo se encuentra en el directorio raíz del sitio web, que es tudominio.com/public_html (donde debes reemplazar tudominio.com con tu propio dominio).
Selecciona wp-config.php y presiona Editar.
Justo encima de la línea “/* That’s all, stop editing! Happy publishing. */”, añade el siguiente código:
define ('WP_ALLOW_REPAIR', true);
Confirma los cambios presionando el icono Guardar.
Para cargar el modo de reparación, abre la página https://tudominio.com/wp-admin/maint/repair.php en tu navegador, donde tudominio.com se reemplaza con el nombre de tu sitio web. Por ejemplo, nuestro nombre es sg-testing.com, por lo que la dirección sería https://sg-testing.com/wp-admin/maint/repair.php.
Elige entre las dos opciones Reparar base de datos y Reparar y optimizar la base de datos, y una vez finalizado el mantenimiento, vuelve a cargar la página de inicio de tu sitio web. Una vez que confirmes que el error está solucionado, elimina el código que agregaste en wp-config.php para que nadie más pueda ejecutar el modo de reparación.
Inspeccionar la URL del sitio de WordPress en la base de datos
El error evitará que inicies sesión en el panel donde está configurada la URL del sitio web. Sin embargo, puedes usar phpMyAdmin para editar las tablas donde están definidos estos ajustes.
Los usuarios de SiteGround pueden acceder a la herramienta navegando a Site Tools > Sitio web > MySQL > PHPMYADMIN > ACCEDER A PHPMYADMIN.
Haz clic en la base de datos del sitio web en la columna de la izquierda y abre la tabla wp_options.
Las URL del sitio web se definen en las opciones siteurl y home. Presiona Edit en cada una, establece la URL del sitio web correcta en el campo option_value y confirma el cambio con el botón Go.
Restaurar una copia de seguridad del sitio
Si encuentras el error después de una transferencia manual, asegúrate de exportar una nueva copia de seguridad completa del sitio web desde el hosting anterior e importarla al nuevo hosting de nuevo.
Si el sitio web no se ha transferido y el error aparece de repente, tu mejor opción es restaurar el sitio web desde una copia de seguridad reciente. Revisa este tutorial sobre la herramienta de copias de seguridad de SiteGround.
Ponte en contacto con el proveedor de hosting web
Las soluciones descritas anteriormente funcionan si el problema proviene de la configuración del sitio web. Sin embargo, WordPress puede fallar al conectarse a la base de datos si el servidor MySQL está sobrecargado o en mantenimiento.
Si administras tu propio servidor, considera reiniciar el servicio MySQL para borrar cualquier consulta atascada sobre la base de datos.
Los usuarios con hosting gestionado no tienen este tipo de acceso. Ponte en contacto con el equipo de soporte de tu proveedor para que puedan comprobar el estado del servidor y resolver los problemas desde su lado.
Resumen
“Error al establecer una conexión a la base de datos” es un error generalizado de WordPress que es probable que te encuentres de vez en cuando. En pocas palabras, te informa que tu sitio web no puede conectarse con su base de datos.
Durante este período, tu sitio web no es accesible y debes repararlo antes de perder tráfico sustancial. Pero no te preocupes, solo hay una pequeña cantidad de causas, y con un poco de resolución de problemas, se pueden resolver fácilmente.
Esta guía describe las causas más comunes del error. Si sigues las instrucciones cuidadosamente, tu sitio web volverá a estar en línea en poco tiempo.