Cómo solucionar el error 'Error de conexión a la base de datos' en WordPress y PrestaShop
¿Qué significa el error "Error de conexión a la base de datos"?
Este es, probablemente, el error más temido por cualquier persona que gestiona una web con WordPress o PrestaShop. Ver ese mensaje en la pantalla, ya sea en la parte frontal de tu tienda o en el panel de administración, puede ser desalentador. Pero respira hondo. En la gran mayoría de los casos, no has perdido tus datos ni tu trabajo. Simplemente, tu sitio web no puede comunicarse con el servidor donde se almacena toda la información (productos, artículos, usuarios, pedidos, etc.).
Piensa en tu web como una biblioteca. WordPress o PrestaShop son los bibliotecarios que te muestran los libros (el contenido). La base de datos es el almacén donde están guardados todos esos libros. El error de conexión significa que el bibliotecario no puede abrir la puerta del almacén. O la llave (las credenciales) es incorrecta, o el almacén está cerrado (servidor caído), o hay un problema con el edificio (el servidor en sí).
En este artículo, vamos a desglosar, paso a paso y sin tecnicismos, cómo diagnosticar y solucionar este problema tanto en WordPress como en PrestaShop. No necesitas ser un experto en Linux o SysAdmin para seguir esta guía, solo necesitas paciencia y seguir el orden de los pasos.
Primeros pasos: Diagnóstico inicial y verificación de errores comunes
Antes de lanzarnos a modificar archivos, vamos a hacer un chequeo rápido. Muchas veces, la solución es más sencilla de lo que parece.
1. Verifica si el problema es general o específico
Lo primero es determinar si el error afecta a todo tu sitio o solo a una parte.
- ¿Aparece el error en toda la web? Si tanto la parte pública como el panel de administración (wp-admin o tuadmin) muestran el error, el problema es general.
- ¿Solo aparece en una página? Si solo una página o sección falla, podría ser un problema con un plugin o módulo específico, no con la conexión general.
- ¿El error es intermitente? Si el error aparece y desaparece, podría ser que el servidor de base de datos esté sobrecargado o se esté reiniciando.
2. Comprueba si el servidor de base de datos está activo
Este es el equivalente a comprobar si el almacén está abierto. Si tu hosting utiliza un panel como cPanel, Plesk o Syspanel (recuerda, el puerto de acceso es el 2106), busca la sección de "Bases de datos MySQL" o "Servicios". Asegúrate de que el servicio MySQL o MariaDB aparece como "Activo" o "Corriendo".
[INFO] Si tu web está en un hosting compartido, no siempre podrás ver el estado del servidor. En ese caso, contacta con el soporte de tu proveedor y pregunta si hay algún problema con el servicio MySQL.
3. Revisa las credenciales de acceso a la base de datos
El error más común es tener mal configuradas las credenciales de acceso. Esto suele pasar después de migrar la web a otro servidor o al cambiar la contraseña de la base de datos.
- En WordPress, los datos de conexión se encuentran en el archivo
wp-config.php. - En PrestaShop, se encuentran en el archivo
app/config/parameters.php(en versiones 1.7 y superiores) oconfig/settings.inc.php(en versiones 1.6 y anteriores).
Debes buscar los siguientes parámetros y asegurarte de que coinciden con los datos de tu proveedor de hosting:
Para WordPress, busca en wp-config.php:
define('DB_NAME', 'nombre_base_datos');
define('DB_USER', 'usuario_base_datos');
define('DB_PASSWORD', 'contraseña_base_datos');
define('DB_HOST', 'localhost');
Para PrestaShop, busca en parameters.php:
'database_host' => 'localhost',
'database_name' => 'nombre_base_datos',
'database_user' => 'usuario_base_datos',
'database_password' => 'contraseña_base_datos',
[WARNING] El valor de
DB_HOSTodatabase_hostno siempre eslocalhost. A veces, en hosting más avanzados o con bases de datos remotas, es una dirección IP o un nombre de servidor comomysql.servidor.com. Si no estás seguro, contacta con tu proveedor.
Solucionar el error en WordPress: Guía paso a paso
Si has verificado lo anterior y todo parece correcto, o si el error persiste, vamos a profundizar. Aquí tienes las soluciones más efectivas para WordPress.
1. Repara la base de datos de WordPress
WordPress tiene una herramienta integrada para reparar tablas de la base de datos que puedan estar corruptas. Para activarla, debes añadir una línea al archivo wp-config.php.
- Accede a tu servidor por FTP o desde el administrador de archivos de tu panel de hosting.
- Abre el archivo
wp-config.phpen un editor de texto plano. - Añade la siguiente línea justo antes de la línea que dice
/* That's all, stop editing! Happy publishing. */:
define('WP_ALLOW_REPAIR', true);
- Guarda el archivo y súbelo de nuevo si lo estabas editando localmente.
- Ahora, visita la siguiente URL en tu navegador:
tudominio.com/wp-admin/maint/repair.php - Verás una pantalla con dos opciones: "Reparar base de datos" y "Reparar y optimizar base de datos". Haz clic en la primera.
- Espera a que termine el proceso. Te mostrará un mensaje de éxito o un listado de errores.
- IMPORTANTE: Una vez terminado, vuelve a editar
wp-config.phpy elimina la línea que añadiste. Dejarla activa es un riesgo de seguridad.
[TIP] Este proceso es seguro y no borra datos, solo intenta corregir tablas dañadas. Es como pasar un "antivirus" a tu base de datos.
2. Desactiva todos los plugins (Acceso por FTP)
A veces, un plugin conflictivo puede estar sobrecargando la base de datos o generando consultas erróneas que rompen la conexión. Si no puedes acceder a tu panel de administración, puedes desactivar todos los plugins manualmente.
- Accede a tu servidor por FTP o administrador de archivos.
- Navega a la carpeta
wp-content/. - Busca la carpeta
plugins. - Renombra la carpeta
pluginsaplugins_old. Esto desactiva todos los plugins de golpe. - Intenta acceder a tu web. Si el error desaparece, el problema era un plugin.
- Para identificar cuál, crea una nueva carpeta llamada
plugins(vacía) y ve moviendo los plugins deplugins_olda la nueva carpeta uno a uno, comprobando tu web después de cada movimiento. - Una vez identifiques el culpable, puedes eliminarlo o buscar una alternativa actualizada.
[WARNING] Al renombrar la carpeta, WordPress no podrá cargar los plugins, pero no los borra. Es una solución reversible. Si no recuerdas la contraseña de FTP, la mayoría de los paneles de hosting (incluido Syspanel, puerto 2106) tienen un "Administrador de Archivos" en el navegador.
3. Verifica el usuario y los privilegios de la base de datos
A veces, el usuario que WordPress usa para conectarse no tiene todos los privilegios necesarios. Esto puede pasar después de una migración o una restauración.
- Accede a tu panel de control de hosting (cPanel, Plesk, Syspanel, etc.).
- Busca la sección de "Bases de datos MySQL".
- Localiza la base de datos que usa tu WordPress y el usuario asociado.
- Asegúrate de que el usuario tiene TODOS LOS PRIVILEGIOS (SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP, etc.). La forma más fácil es seleccionar la opción "Todos los privilegios" o "ALL PRIVILEGES".
- Guarda los cambios y prueba de nuevo.
4. Cambia el host de la base de datos
Si estás en un hosting con un sistema de caché de DNS o si has migrado recientemente, el valor localhost podría ser el problema. Prueba a cambiarlo por 127.0.0.1 o por la dirección IP del servidor de tu base de datos.
[INFO] En muchos servidores,
localhosty127.0.0.1son equivalentes, pero no siempre. Si tu hosting usa sockets Unix o una configuración especial, puede que necesites la IP exacta. Contacta con tu proveedor si no la tienes.
Solucionar el error en PrestaShop: Guía paso a paso
PrestaShop es más estricto con la configuración y puede ser un poco más complejo, pero las soluciones son similares.
1. Limpia la caché de PrestaShop
A veces, PrestaShop guarda configuraciones antiguas en su caché y, tras un cambio de servidor o de credenciales, sigue intentando conectar a la base de datos antigua. Limpiar la caché suele resolverlo.
- Accede a la carpeta
var/cache/en la raíz de tu instalación de PrestaShop (en versiones 1.7) ocache/(en versiones 1.6). - Dentro, encontrarás subcarpetas con nombres como
dev,prodocachefs. - Elimina todos los archivos que haya dentro de estas carpetas, pero no borres las carpetas en sí.
- Si no tienes acceso por FTP, puedes usar el administrador de archivos de tu panel de hosting.
[TIP] Si el error persiste, prueba a renombrar las carpetas
devyprodadev_oldyprod_old. PrestaShop las recreará automáticamente con la configuración correcta.
2. Revisa los archivos de configuración manualmente
Al igual que en WordPress, los datos de conexión se guardan en archivos. En PrestaShop 1.7+, abre app/config/parameters.php. En PrestaShop 1.6, abre config/settings.inc.php. Verifica que los datos sean correctos.
En parameters.php, busca la clave parameters y dentro de ella database_host, database_user, database_password y database_name. En settings.inc.php, busca las constantes _DB_SERVER_, _DB_NAME_, _DB_USER_ y _DB_PASSWD_.
[WARNING] En PrestaShop, es muy importante que el
database_prefixsea el correcto. Si lo cambiaste o está mal, la conexión fallará aunque las credenciales sean buenas. Normalmente esps_.
3. Comprueba el archivo .htaccess (para problemas de redirección)
Aunque no es la causa directa del error de conexión, un .htaccess corrupto puede causar problemas de carga que se confunden con un error de base de datos. Este archivo se encuentra en la raíz de tu PrestaShop.
- Conéctate por FTP y localiza el archivo
.htaccess. - Renómbralo a
.htaccess_old. - Intenta acceder a tu tienda. Si funciona, el problema era el
.htaccess. - Para regenerarlo, entra al panel de administración de PrestaShop y ve a "Parámetros Avanzados" > "Rendimiento". Pulsa el botón "Actualizar" en la sección de "Archivo .htaccess".
4. Verifica los permisos de los archivos
Si has movido archivos recientemente, es posible que los permisos de las carpetas de PrestaShop estén mal configurados. Los permisos correctos suelen ser 755 para carpetas y 644 para archivos.
- La carpeta
app/config/debe tener permisos755. - El archivo
parameters.phpdebe tener permisos644.
Si tienes dudas sobre cómo cambiar permisos, busca en la documentación de tu cliente FTP o en el panel de tu hosting. Es un proceso muy común.
Soluciones avanzadas: Cuando el problema es del servidor (Linux y SysAdmin)
Si has agotado todas las opciones anteriores, el problema puede estar en el servidor en sí. Aquí es donde entran en juego los conocimientos de SysAdmin.
1. Reiniciar el servicio MySQL/MariaDB
Si tienes acceso SSH a tu servidor (VPS o dedicado), puedes reiniciar el servicio de bases de datos. Esto es como "apagar y encender" el almacén.
sudo systemctl restart mysql
O, si usas MariaDB:
sudo systemctl restart mariadb
[WARNING] Solo usa este comando si sabes lo que haces. Reiniciar el servicio en un servidor con mucho tráfico puede causar una breve caída de todas las webs alojadas en él.
2. Revisar los logs de error de MySQL
Los logs son el diario de a bordo del servidor. Si el servicio no arranca o falla, ahí aparecerá el motivo. Para verlos:
sudo tail -f /var/log/mysql/error.log
O, en algunos sistemas:
sudo journalctl -u mysql
Busca líneas que indiquen "Access denied", "Can't connect" o "Too many connections". Esto te dará pistas sobre el problema.
3. Aumentar el límite de conexiones
Si tu web recibe mucho tráfico, puede que el servidor esté alcanzando el límite de conexiones simultáneas a la base de datos. Esto se traduce en un error de conexión para los visitantes.
Para aumentar el límite, edita el archivo de configuración de MySQL (normalmente /etc/mysql/my.cnf o /etc/mysql/mariadb.conf.d/50-server.cnf). Busca la línea max_connections y aumenta su valor (por ejemplo, de 150 a 300). Luego reinicia el servicio.
sudo nano /etc/mysql/my.cnf
[TIP] Aumentar el límite no es una solución mágica. Si el servidor no tiene suficiente memoria RAM, aumentar las conexiones puede empeorar las cosas. Es una solución temporal. Si necesitas más recursos, considera contratar un plan superior o usar una caché para reducir la carga en la base de datos.
Preguntas frecuentes (FAQ) sobre el error de conexión a la base de datos
¿He perdido mis datos si veo este error?
No. En el 99% de los casos, tus datos están a salvo en la base de datos. El error solo indica un problema de comunicación. Una vez solucionado, todo volverá a la normalidad.
¿Por qué veo este error después de migrar mi web?
Es el momento más común. Las credenciales (usuario, contraseña, nombre de la base de datos) suelen cambiar al mover la web a un nuevo servidor. También puede cambiar el DB_HOST. Revisa los archivos de configuración y asegúrate de que los datos son los del nuevo hosting.
¿Cómo sé si mi hosting usa "localhost" o una IP?
Puedes probar ambos valores. Si localhost no funciona, prueba 127.0.0.1. Si ninguno funciona, contacta con tu proveedor de hosting y pregunta por el "host de la base de datos". Es un dato que deberían darte sin problema.
¿Puede un plugin o módulo causar este error?
Sí, es posible. Un plugin mal codificado o un módulo de PrestaShop con errores puede generar consultas SQL que sobrecargan la base de datos o bloquean las conexiones. Desactivar todos los plugins/módulos (como se explicó arriba) es una buena forma de diagnosticarlo.
¿Qué hago si ninguna de estas soluciones funciona?
Si has seguido todos los pasos y el error persiste, el problema es más profundo. Te recomiendo contactar con el soporte técnico de tu proveedor de hosting. Ellos tienen acceso directo al servidor y podrán diagnosticar el problema en minutos. Diles que has revisado las credenciales, los logs y los permisos, y que el problema persiste. Esto les ahorrará tiempo y te ayudará a resolverlo más rápido.
[INFO] Si tu hosting es gestionado por un panel como Syspanel (accesible por el puerto 2106), el soporte técnico suele ser muy ágil. No dudes en abrir un
