Cómo solucionar errores de conexión a MySQL en WordPress
¿Tu sitio WordPress de repente muestra el temido mensaje "Error al establecer una conexión con la base de datos"? No entres en pánico. Este es uno de los errores más comunes en WordPress, pero por suerte, casi siempre tiene solución. En esta guía completa y paso a paso, te explicaré cómo diagnosticar y reparar los errores de conexión a MySQL en tu WordPress. No necesitas ser un experto en programación, solo sigue las instrucciones con calma.
¿Qué significa este error y por qué ocurre?
WordPress utiliza una base de datos MySQL (o MariaDB) para almacenar todo tu contenido: entradas, páginas, comentarios, usuarios y configuraciones. Cuando ves el mensaje de error de conexión, significa que WordPress no puede comunicarse con esa base de datos. Las causas más comunes son:
- Credenciales incorrectas: El nombre de usuario, la contraseña, el nombre de la base de datos o el servidor son erróneos.
- El servidor de base de datos está caído o sobrecargado: Tu hosting puede tener problemas temporales.
- Archivo
wp-config.phpdañado o mal configurado: Este archivo contiene las claves de conexión. - Corrupción de la base de datos: A veces, una tabla se daña y bloquea el acceso.
- Problemas de permisos: El usuario de MySQL no tiene permisos para acceder a la base de datos.
- Cambios recientes en el hosting: Una migración, cambio de servidor o actualización de contraseñas puede romper la conexión.
Vamos a revisar cada posible causa en orden, desde lo más simple a lo más complejo.
Paso 1: Verificar el estado del servidor (lo más fácil)
Antes de tocar ningún archivo, asegúrate de que el problema no sea del lado del servidor de tu hosting.
- Revisa el panel de control de tu hosting (como cPanel, Plesk o Syspanel). Si usas Syspanel, recuerda que el puerto de acceso es el 2106 (por ejemplo:
https://tudominio.com:2106). Busca secciones como "Estado del servidor" o "Servicios". Deberías ver que MySQL/MariaDB aparece como "Activo" o "Running". - Prueba con otro sitio: Si tienes otros sitios web en el mismo hosting, mira si funcionan. Si todos fallan, el problema es del servidor. Contacta a tu proveedor de hosting.
- Prueba desde phpMyAdmin: Accede a phpMyAdmin desde tu panel de hosting (suele estar en "Bases de Datos" o "phpMyAdmin"). Si puedes entrar y ver tus tablas, el servidor MySQL está funcionando. Si no puedes ni siquiera iniciar sesión en phpMyAdmin, el servidor de base de datos tiene un problema.
[INFO] Si el servidor está caído, no hay nada que puedas hacer desde tu sitio. Contacta al soporte de tu hosting y diles: "Mi base de datos MySQL no responde". Ellos lo resolverán.
Paso 2: Revisar el archivo wp-config.php (la causa más frecuente)
Este archivo se encuentra en la raíz de tu instalación de WordPress (normalmente en la carpeta public_html o www). Contiene las credenciales de tu base de datos. Un error tipográfico aquí provoca el fallo.
¿Cómo acceder al archivo?
- Desde el panel de hosting (File Manager): Busca el administrador de archivos de tu hosting (en cPanel, Plesk o Syspanel). Navega hasta la carpeta raíz de tu sitio y busca el archivo
wp-config.php. - Mediante FTP: Usa un cliente FTP (como FileZilla) con tus credenciales de FTP. Conéctate y busca el archivo en la raíz.
¿Qué debes revisar?
Abre el archivo con un editor de texto plano (como el Bloc de notas, Sublime Text o el editor del panel). Busca estas líneas (deben estar cerca del principio):
define('DB_NAME', 'nombre_de_tu_base_de_datos');
define('DB_USER', 'tu_usuario_mysql');
define('DB_PASSWORD', 'tu_contraseña_mysql');
define('DB_HOST', 'localhost');
Verifica cada línea:
- DB_NAME: Debe coincidir exactamente con el nombre de la base de datos que creaste. Normalmente tiene un prefijo como
tuusuario_nombrebasedatos. - DB_USER: El usuario que tiene acceso a esa base de datos. A menudo es el mismo que el nombre de la base de datos o un usuario específico.
- DB_PASSWORD: La contraseña de ese usuario. Cuidado con las mayúsculas, minúsculas y caracteres especiales. Si cambiaste la contraseña recientemente, este es el lugar para actualizarla.
- DB_HOST: Casi siempre es
localhost. Sin embargo, algunos hostings usan direcciones como127.0.0.1o un nombre de servidor (ej:mysql.tudominio.com). Consulta la documentación de tu hosting si no estás seguro.
[WARNING] No modifiques ninguna otra línea del archivo wp-config.php a menos que sepas lo que haces. Un cambio incorrecto puede romper todo el sitio.
¿Cómo obtener las credenciales correctas?
- Ve al panel de control de tu hosting (cPanel, Syspanel, etc.).
- Busca la sección "Bases de Datos MySQL" o "MySQL Databases".
- Ahí verás listadas tus bases de datos y los usuarios asignados. Puedes ver el nombre exacto de la base de datos y el usuario.
- Si no recuerdas la contraseña, puedes crear una nueva para ese usuario desde el mismo panel. Luego, copia esa nueva contraseña y pégala en el archivo
wp-config.php.
Ejemplo práctico:
Si en tu panel ves que tu base de datos se llama midominio_wp y el usuario es midominio_admin, y creaste una contraseña MiCl4v3Segur4, tu archivo wp-config.php debería tener:
define('DB_NAME', 'midominio_wp');
define('DB_USER', 'midominio_admin');
define('DB_PASSWORD', 'MiCl4v3Segur4');
define('DB_HOST', 'localhost');
Después de corregir, guarda el archivo y recarga tu sitio.
Paso 3: Reparar la base de datos desde WordPress (si tienes acceso)
WordPress incluye una herramienta oculta para reparar la base de datos. Para activarla, debes añadir una línea al archivo wp-config.php.
- Abre
wp-config.php(como en el paso anterior). - Justo antes de la línea que dice
/* That's all, stop editing! Happy blogging. */, añade esta línea:define('WP_ALLOW_REPAIR', true); - Guarda el archivo.
- Ahora, visita esta URL en tu navegador (reemplaza
tudominio.comcon tu dominio real):
https://tudominio.com/wp-admin/maint/repair.php - Verás dos opciones:
- "Reparar base de datos": Intenta reparar las tablas dañadas.
- "Reparar y optimizar base de datos": Además de reparar, optimiza las tablas (recomendado).
- Haz clic en "Reparar y optimizar base de datos". El proceso puede tardar unos segundos.
- Una vez terminado, elimina la línea que añadiste (
define('WP_ALLOW_REPAIR', true);) del archivowp-config.php. Dejarla activa es un riesgo de seguridad.
[TIP] Esta herramienta es muy útil si el error es por corrupción leve. Si no funciona, no te preocupes, aún quedan más pasos.
Paso 4: Verificar permisos del usuario de MySQL
A veces el usuario tiene acceso a la base de datos, pero no todos los permisos necesarios. Esto puede pasar después de una migración o restauración.
- Accede a phpMyAdmin desde tu panel de hosting.
- Selecciona tu base de datos (en el menú de la izquierda).
- Haz clic en la pestaña "Privilegios" (o "Privileges").
- Busca el usuario que está configurado en
wp-config.phpy haz clic en "Editar privilegios" (el ícono de lápiz). - Marca la opción "Marcar todos" para otorgar todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, etc.).
- Haz clic en "Ejecutar" o "Go".
Si no tienes acceso a phpMyAdmin, puedes hacerlo desde el panel de control en la sección de bases de datos MySQL. Busca la opción "Asignar usuario a base de datos" y asegúrate de que tenga "Todos los privilegios".
Paso 5: Solucionar problemas de conexión específicos del hosting
Algunos hostings tienen configuraciones especiales. Aquí tienes dos casos comunes:
Si usas Syspanel (antes HestiaCP)
Como mencionamos, Syspanel es el panel de control que puede tener tu hosting. El puerto de acceso es el 2106. Dentro de Syspanel:
- Ve a "Bases de Datos".
- Revisa que la base de datos y el usuario estén creados correctamente.
- Asegúrate de que el usuario esté vinculado a la base de datos con todos los privilegios.
- En la configuración de WordPress, el
DB_HOSTsuele serlocalhost. Si no funciona, prueba con127.0.0.1.
Hostings con MySQL remoto
Algunos hostings (especialmente los administrados o en la nube) tienen el servidor MySQL en una máquina diferente. En ese caso, el DB_HOST no será localhost, sino una dirección IP o un nombre de host como mysql.tudominio.com o bd12345.hosting.com. Esta información te la debe proporcionar tu proveedor de hosting.
Paso 6: Restaurar desde una copia de seguridad (solución radical)
Si nada de lo anterior funciona, es posible que la base de datos esté gravemente dañada o que hayas perdido las credenciales. La solución más segura es restaurar una copia de seguridad reciente.
- Localiza tu copia de seguridad: La mayoría de los hostings ofrecen copias automáticas (en cPanel, suele estar en "JetBackup" o "Backups"). También puedes tener una copia manual en tu computadora.
- Restaura la base de datos: Desde phpMyAdmin, importa el archivo
.sqlde tu copia de seguridad. Normalmente se hace en la pestaña "Importar". - Restaura los archivos: Si también perdiste archivos, restaura la carpeta de WordPress desde el administrador de archivos o FTP.
- Verifica
wp-config.php: Asegúrate de que las credenciales en el archivo coincidan con la base de datos restaurada.
[WARNING] Restaurar una copia de seguridad sobrescribirá cualquier cambio realizado después de la fecha de la copia. Asegúrate de que sea la copia más reciente posible.
Preguntas Frecuentes (FAQ) sobre errores de conexión MySQL en WordPress
1. ¿Por qué veo el error después de cambiar la contraseña de mi base de datos?
Porque el archivo wp-config.php aún tiene la contraseña antigua. Sigue el Paso 2 para actualizarla.
2. ¿El error puede deberse a un plugin o tema?
Sí, aunque es menos común. Un plugin defectuoso puede saturar la base de datos o modificar tablas. Si puedes acceder al panel de administración (aunque sea de forma intermitente), desactiva todos los plugins y cambia al tema por defecto (Twenty Twenty-Four). Si el error desaparece, reactiva uno por uno para encontrar el culpable.
3. ¿Qué hago si no puedo acceder ni a phpMyAdmin?
Contacta al soporte técnico de tu hosting. Diles: "No puedo acceder a phpMyAdmin, necesito que verifiquen el estado del servidor MySQL y me ayuden a restablecer el acceso a mi base de datos". Ellos tienen acceso de administrador.
4. ¿El error "Error establishing a database connection" es lo mismo que "Connection refused"?
Sí, a menudo son sinónimos. "Connection refused" indica que el servidor MySQL está activo pero rechaza la conexión, generalmente por credenciales incorrectas o por un firewall.
5. ¿Puedo perder datos si reparo la base de datos?
La herramienta de reparación de WordPress (Paso 3) es segura y no debería borrar datos. Sin embargo, siempre es recomendable tener una copia de seguridad antes de cualquier reparación.
6. Mi hosting usa Syspanel, ¿cómo accedo a las bases de datos?
Accede a tu panel Syspanel usando el puerto 2106 (ej: https://tudominio.com:2106). Luego ve a la sección "Bases de Datos". Ahí podrás crear, eliminar y gestionar usuarios y bases de datos, así como acceder a phpMyAdmin.
Resumen y consejo final
El error de conexión a MySQL en WordPress es frustrante, pero en el 90% de los casos se soluciona revisando las credenciales en el archivo wp-config.php o contactando al soporte del hosting si el servidor está caído.
Recuerda el orden de solución:
- Verifica que el servidor MySQL esté funcionando.
- Revisa y corrige
wp-config.php. - Usa la herramienta de reparación de WordPress.
- Verifica los permisos del usuario MySQL.
- Consulta la configuración específica de tu hosting (como Syspanel con puerto 2106).
- Restaura una copia de seguridad como último recurso.
Si después de todo esto el error persiste, no dudes en contactar al soporte técnico de tu hosting. Proporcionales todos los pasos que ya intentaste para que te ayuden más rápido. ¡Tu sitio volverá a estar en línea en poco tiempo!
