Cómo solucionar el error 'Failed to connect to MySQL' en WordPress
¡Hola! Soy tu técnico de soporte amigable. Hoy vamos a resolver uno de los sustos más comunes al administrar un WordPress: el temido error "Failed to connect to MySQL" (Error al conectar con MySQL). No te preocupes, esto no significa que hayas perdido tu sitio para siempre. Es un problema de comunicación entre WordPress y la base de datos, y en la mayoría de los casos se soluciona en pocos minutos. Te voy a guiar paso a paso, con un lenguaje muy claro y sencillo, para que puedas recuperar tu web.
¿Qué significa este error?
Cuando ves un mensaje como Error establishing a database connection o Failed to connect to MySQL, lo que está pasando es que WordPress intenta hablar con tu base de datos (donde se guardan tus artículos, usuarios, configuraciones, etc.) pero no logra establecer la comunicación. Es como si llamaras a un amigo pero su teléfono estuviera apagado o le hubieras marcado mal el número.
Las causas más comunes son:
- Credenciales incorrectas en el archivo de configuración.
- El servicio MySQL no está funcionando en el servidor.
- El servidor de base de datos está saturado o ha superado el límite de conexiones.
- Problemas con el archivo
wp-config.php(dañado, permisos incorrectos). - El hosting ha cambiado la configuración (por ejemplo, el nombre del servidor de base de datos).
Vamos a solucionarlo juntos, paso a paso. No necesitas ser un experto, solo seguir las instrucciones con calma.
Paso 1: Identifica el tipo de error exacto
Antes de tocar nada, fíjate bien en el mensaje. Puede aparecer de dos formas:
- Error completo en pantalla blanca:
Error establishing a database connection. - Mensaje más técnico:
Failed to connect to MySQL: Access denied for user...oCan't connect to local MySQL server through socket....
Cada variante nos da una pista. Si ves "Access denied", el problema son las credenciales. Si ves "Can't connect to socket", probablemente el servicio MySQL está caído.
Paso 2: Verifica que MySQL esté funcionando (lo más común)
Lo primero y más rápido es comprobar si el servicio de base de datos está activo. Esto lo puedes hacer desde el panel de control de tu hosting.
Si usas cPanel (el más común):
- Inicia sesión en tu cPanel (normalmente en
tudominio.com/cpanel). - Busca la sección "Bases de Datos" y haz clic en "phpMyAdmin".
- Si se abre phpMyAdmin sin errores, ¡MySQL está funcionando! Si ves un error, significa que el servicio está caído.
[WARNING] Si no puedes acceder a phpMyAdmin o ves un mensaje de error, contacta a tu proveedor de hosting inmediatamente. Ellos deben reiniciar el servicio MySQL en el servidor.
Si usas Syspanel (HestiaCP, puerto 2106):
- Accede a
tudominio.com:2106e inicia sesión. - Ve a "Bases de Datos" y haz clic en "phpMyAdmin" al lado de tu base de datos.
- Si se abre, el servicio está bien. Si no, reporta el problema a soporte.
Paso 3: Revisa las credenciales en wp-config.php
Si MySQL funciona, el siguiente paso es verificar que WordPress tenga los datos correctos para conectarse. El archivo clave es wp-config.php, que está en la raíz de tu instalación.
¿Cómo acceder a este archivo?
- Desde cPanel: Ve a "Administrador de Archivos" (File Manager), busca la carpeta
public_html(o el directorio donde tengas WordPress), y localizawp-config.php. - Desde Syspanel: Usa el "Administrador de Archivos" que viene integrado en el panel (puerto 2106) o conéctate por FTP (FileZilla, por ejemplo).
- Por FTP: Conéctate con tu cliente FTP (FileZilla, Cyberduck) a los datos que te dio tu hosting. Busca el archivo en la raíz.
¿Qué buscar dentro del archivo?
Abre wp-config.php con un editor de texto (nunca con WordPad o procesadores de texto, usa Notepad++ o el editor del panel). Busca estas líneas:
define('DB_NAME', 'nombre_base_datos');
define('DB_USER', 'usuario_base_datos');
define('DB_PASSWORD', 'contraseña_base_datos');
define('DB_HOST', 'localhost'); // o puede ser una IP como 127.0.0.1
[TIP] Anota estos valores en un papel. Luego, ve a tu panel de control (cPanel o Syspanel) y en la sección de "Bases de Datos MySQL" verifica que el usuario y la base de datos existan y que el usuario tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, etc.) sobre esa base de datos.
Si los datos son incorrectos:
- Desde cPanel/Syspanel, crea un nuevo usuario o asigna los privilegios correctos.
- Copia exactamente los nombres y contraseñas en
wp-config.php. - Guarda el archivo y vuelve a cargar tu web.
Error común: el usuario no tiene permisos
A veces el usuario existe pero no está vinculado a la base de datos. En cPanel, en "Bases de Datos MySQL", busca la sección "Añadir usuario a la base de datos" y asegúrate de que esté añadido con "Todos los privilegios".
Paso 4: Cambia el servidor de base de datos (DB_HOST)
A veces el problema es que el servidor de base de datos no es localhost. En muchos hostings compartidos, el servidor puede ser una dirección IP o un nombre como mysql.tudominio.com.
¿Cómo saber cuál es?
- En cPanel: En la sección "Bases de Datos MySQL", busca un campo llamado "Servidor" o "Host". Normalmente dice
localhost, pero si ves algo comomysql.tudominio.com, úsalo. - En Syspanel: En la lista de bases de datos, verás el "Host" al lado del nombre. Puede ser
localhosto una IP. - Pregunta a tu hosting: Si no lo encuentras, contacta al soporte y pídeles el "Host de la base de datos MySQL".
Edita la línea en wp-config.php:
define('DB_HOST', 'localhost'); // cámbialo por lo que te indiquen
Por ejemplo, si te dicen que es mysql.midominio.com, pon:
define('DB_HOST', 'mysql.midominio.com');
Guarda y prueba.
Paso 5: Verifica que el archivo wp-config.php no esté dañado
A veces el archivo se corrompe por una mala edición o un ataque. Si después de revisar credenciales y host sigue sin funcionar, puedes reemplazarlo con uno limpio.
Cómo obtener un wp-config.php nuevo:
- Descarga una copia fresca de WordPress desde wordpress.org.
- Descomprime el archivo y busca
wp-config-sample.php. - Cámbiale el nombre a
wp-config.phpy edítalo con tus datos (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST). - Importante: También necesitas las claves de seguridad (Authentication Unique Keys). En el archivo de muestra verás líneas como:
define('AUTH_KEY', 'pon tu frase única aquí');
define('SECURE_AUTH_KEY', 'pon tu frase única aquí');
...
Puedes generar nuevas claves en: https://api.wordpress.org/secret-key/1.1/salt/. Copia y pega todo el bloque en tu archivo.
- Sube este nuevo
wp-config.phpa tu servidor (sobrescribe el antiguo) y prueba.
Paso 6: Reinicia el servicio MySQL (si tienes acceso root)
Si tienes un VPS o un servidor dedicado (no hosting compartido), puedes reiniciar MySQL desde la terminal. Si no tienes acceso, salta este paso.
En servidores Linux (Ubuntu/Debian):
sudo systemctl restart mysql
En CentOS/RHEL:
sudo systemctl restart mariadb
# o
sudo service mysql restart
Luego verifica que esté funcionando:
sudo systemctl status mysql
[INFO] Si el servicio no se reinicia, revisa los logs: sudo tail -f /var/log/mysql/error.log. Puede haber un error de configuración o de espacio en disco.
Paso 7: Aumenta el límite de conexiones (si es necesario)
A veces el error aparece porque muchas conexiones saturan MySQL. Esto es común si tu web recibe mucho tráfico o tienes muchos plugins que hacen consultas constantes.
Si tienes acceso a MySQL (phpMyAdmin o terminal):
- Conéctate a MySQL como root.
- Ejecuta:
SHOW VARIABLES LIKE 'max_connections'; - Si el valor es bajo (por ejemplo, 100), puedes aumentarlo temporalmente con:
SET GLOBAL max_connections = 500;
Pero este cambio se pierde al reiniciar. Para hacerlo permanente, edita el archivo de configuración de MySQL (/etc/mysql/my.cnf o /etc/my.cnf) y agrega:
max_connections = 500
Luego reinicia MySQL.
[WARNING] No aumentes este valor sin consultar con tu hosting o administrador, ya que puede consumir más memoria del servidor.
Paso 8: Revisa los logs de errores de WordPress
WordPress guarda registros de errores que pueden darte pistas más específicas. Para activarlos:
- Abre
wp-config.phpy busca la línea:
define('WP_DEBUG', false);
- Cámbiala a:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
- Esto creará un archivo
wp-content/debug.log. Vuelve a cargar tu web y luego revisa ese archivo. Busca líneas que contengan "database" o "MySQL".
[TIP] No dejes el modo debug activado en producción. Cuando termines, vuelve a poner WP_DEBUG en false.
Paso 9: Soluciones rápidas para hosting compartido
Si estás en un hosting compartido (como los planes básicos de cPanel o Syspanel), a veces el problema es del proveedor y no tuyo. Prueba esto:
- Limpia la caché: Algunos hostings tienen sistemas de caché que pueden interferir. Desde cPanel, busca "Optimizar sitio web" o "Limpieza de caché".
- Desactiva plugins temporalmente: Si no puedes acceder al panel de administración, renombra la carpeta
wp-content/pluginsawp-content/plugins_olddesde el administrador de archivos. Esto desactivará todos los plugins. Si el error desaparece, reactiva uno por uno para encontrar el culpable. - Cambia la versión de PHP: Desde cPanel, en "Seleccionar versión de PHP", prueba con una versión más moderna (7.4, 8.0 u 8.1). WordPress funciona mejor con versiones recientes.
Paso 10: Contacta a tu proveedor de hosting
Si después de todos estos pasos el error persiste, es momento de pedir ayuda profesional. El soporte técnico de tu hosting puede verificar:
- Si el servidor MySQL está funcionando correctamente.
- Si hay algún bloqueo de IP o firewall.
- Si el límite de conexiones se ha alcanzado.
[INFO] Cuando contactes al soporte, diles exactamente qué has probado (por ejemplo: "Ya verifiqué que el usuario y la base de datos existen en cPanel, cambié DB_HOST a localhost, y el servicio MySQL parece activo porque puedo entrar a phpMyAdmin"). Esto acelera la solución.
FAQ: Preguntas frecuentes sobre el error MySQL en WordPress
¿Por qué aparece este error después de mover mi web a otro hosting?
Al cambiar de servidor, las credenciales de la base de datos (nombre, usuario, contraseña y host) cambian. Debes actualizar wp-config.php con los nuevos datos que te proporcione el nuevo hosting.
¿Puedo perder mis datos si edito wp-config.php?
No, siempre que no borres la base de datos. El archivo solo contiene las instrucciones de conexión. Tus artículos, imágenes y configuraciones están en la base de datos, que no se toca.
¿Qué hago si no recuerdo la contraseña de la base de datos?
Desde cPanel o Syspanel puedes cambiar la contraseña del usuario de la base de datos. Luego actualiza wp-config.php con la nueva contraseña. Asegúrate de que el usuario siga teniendo todos los privilegios.
¿El error puede deberse a un plugin o tema?
Sí, aunque es menos común. Si el error aparece después de instalar un plugin, desactívalo renombrando la carpeta plugins como expliqué antes. Si el error se va, el plugin era el culpable.
¿Cómo evito que esto vuelva a pasar?
- Mantén copias de seguridad periódicas de tu base de datos y archivos.
- No modifiques
wp-config.phpa menos que sepas lo que haces. - Usa contraseñas seguras para la base de datos.
- Actualiza WordPress, temas y plugins regularmente.
Resumen final
El error "Failed to connect to MySQL" en WordPress suele solucionarse con estos pasos:
- Verifica que MySQL esté funcionando (phpMyAdmin).
- Revisa las credenciales en
wp-config.php. - Cambia el servidor de base de datos (DB_HOST).
- Reemplaza el archivo
wp-config.phpsi está dañado. - Reinicia MySQL (si tienes acceso).
- Aumenta el límite de conexiones (si es necesario).
- Revisa los logs de errores.
- Prueba soluciones rápidas en hosting compartido.
- Pide ayuda a tu proveedor.
No te desanimes. Este error es como un tropezón: molesto, pero se supera rápido. Si sigues estos pasos con calma, tu web volverá a estar en línea en poco tiempo. ¡Ánimo y mucho éxito con tu WordPress!
[TIP] Si después de todo sigue sin funcionar, prueba a restaurar una copia de seguridad reciente. Es la solución de emergencia más efectiva.
