Solución a problemas de conexión con base de datos en PrestaShop
¡Hola! Soy tu técnico de soporte amigable. Si estás aquí, seguramente tu tienda PrestaShop ha dejado de funcionar y ves un mensaje de error relacionado con la base de datos. No te preocupes, es uno de los problemas más comunes y, por lo general, tiene solución. En esta guía extensa, vamos a desglosar paso a paso cómo identificar y solucionar los errores de conexión con la base de datos en PrestaShop, desde los más simples hasta los más técnicos.
Primero, entendamos qué significa un error base de datos PrestaShop. Tu tienda almacena toda la información (productos, clientes, pedidos, configuraciones) en una base de datos MySQL. Cuando PrestaShop no puede comunicarse con ella, se cae la web. Esto puede deberse a un cambio de contraseña, un fallo del servidor, un archivo de configuración dañado o incluso un plugin conflictivo. Vamos a solucionarlo juntos.
Diagnóstico Rápido: ¿Qué tipo de error ves?
Antes de lanzarnos a solucionar, identifica el error exacto. Los más comunes son:
- "Error de conexión a la base de datos" o "Link to database cannot be established".
- "El servidor MySQL no está disponible" o "Too many connections".
- "Tabla 'ps_xxxx' no existe" o "Base de datos no encontrada".
- "Error al conectar con la base de datos: acceso denegado para el usuario".
Cada uno apunta a una causa diferente. En los siguientes pasos, cubriremos cómo resolverlos todos.
[INFO] Si tu web muestra una página en blanco o un error 500, puede que también sea un problema de base de datos. Activa el modo debug de PrestaShop para ver el error exacto: edita el archivo
/config/defines.inc.phpy cambia_PS_MODE_DEV_atrue.
Paso 1: Verifica que el servidor MySQL esté funcionando
A veces el problema no es de tu tienda, sino del servidor. Si tu hosting es compartido o usas un panel como Syspanel (accesible por el puerto 2106), el servicio MySQL puede haberse detenido.
Para usuarios con acceso a Syspanel (HestiaCP):
- Accede a tu panel Syspanel a través de
https://tudominio.com:2106. - Inicia sesión con tu usuario y contraseña de administrador.
- Busca la sección "Servicios" o "Service Status".
- Localiza "MySQL" o "MariaDB".
- Si aparece en rojo o con estado "Stopped", haz clic en "Reiniciar" o "Start".
Para usuarios con hosting compartido (cPanel, Plesk, etc.):
- Revisa el panel de control de tu hosting. Normalmente hay una sección de "Servicios" o "MySQL".
- Si no ves la opción, contacta al soporte de tu hosting y pregúntales: "¿El servicio MySQL está funcionando correctamente?".
[TIP] Si tu servidor está sobrecargado (muchas visitas simultáneas), MySQL puede colapsar con el error "Too many connections". En ese caso, pide a tu hosting que aumente el límite de conexiones o cambia a un plan superior.
Paso 2: Revisa el archivo de configuración de la base de datos (settings.inc.php)
La configuración de la conexión MySQL de PrestaShop está en el archivo app/config/parameters.php (en PrestaShop 1.7 y 8.x) o en config/settings.inc.php (en PrestaShop 1.6 y versiones anteriores). Si los datos son incorrectos, la conexión fallará.
¿Cómo revisarlo?
- Conéctate a tu servidor vía FTP (FileZilla, por ejemplo) o desde el administrador de archivos de tu hosting.
- Navega a la carpeta raíz de tu tienda (donde están las carpetas
admin,modules,themes, etc.). - Busca el archivo:
- PrestaShop 1.7+:
app/config/parameters.php - PrestaShop 1.6:
config/settings.inc.php
- PrestaShop 1.7+:
- Ábrelo con un editor de texto (Bloc de notas, VS Code, etc.).
- Busca las líneas que contienen:
'database_host' => 'localhost'(o la IP del servidor MySQL)'database_name' => 'nombre_de_tu_bd''database_user' => 'usuario_mysql''database_password' => 'contraseña_mysql'
¿Qué debes comprobar?
- El nombre de la base de datos y el usuario son correctos. Si los cambiaste recientemente, aquí está el problema.
- La contraseña no debe tener caracteres especiales que puedan romper el código (aunque normalmente funciona). Si dudas, cámbiala desde tu panel de hosting y actualízala aquí.
- El host: Si tu base de datos está en otro servidor (no en
localhost), asegúrate de que la IP o el dominio sea el correcto.
[WARNING] Nunca edites este archivo con Word o procesadores de texto que añadan formato. Usa siempre un editor de texto plano.
Paso 3: Cambia la contraseña de la base de datos desde el panel de hosting
Si sospechas que la contraseña es incorrecta (la has olvidado o la cambiaste), lo más seguro es generar una nueva desde tu panel de control y luego actualizar el archivo de PrestaShop.
Desde Syspanel (puerto 2106):
- Accede a
https://tudominio.com:2106. - Ve a "Bases de datos" o "Databases".
- Busca la base de datos que usa tu tienda.
- Haz clic en el icono de editar (lápiz) o en "Cambiar contraseña".
- Genera una nueva contraseña segura o escribe una fácil de recordar.
- Importante: Anótala exactamente como la escribiste (mayúsculas, minúsculas, símbolos).
- Ahora, actualiza el archivo
parameters.phposettings.inc.phpcon la nueva contraseña.
Desde cPanel:
- Busca la sección "Bases de datos MySQL".
- Encuentra tu base de datos y haz clic en "Cambiar contraseña".
- Sigue el mismo proceso.
[TIP] Si después de cambiar la contraseña sigues teniendo error, prueba a reiniciar el servicio MySQL desde el panel de servicios (como vimos en el Paso 1). A veces los cambios no se aplican hasta que se reinicia.
Paso 4: Repara tablas dañadas o corruptas
A veces, una tabla de la base de datos se daña (por un corte de luz, una actualización fallida o un módulo malicioso) y PrestaShop no puede leerla. Esto causa errores como "Table 'ps_product' doesn't exist" o "Error en la consulta SQL".
Usa phpMyAdmin (la herramienta más fácil)
- Desde tu panel de hosting (Syspanel, cPanel, etc.), busca phpMyAdmin.
- En Syspanel: Ve a "Bases de datos" y luego a "phpMyAdmin" (suele estar en la parte superior o en un botón).
- Selecciona la base de datos de tu tienda (a la izquierda).
- Marca la casilla "Seleccionar todo" para elegir todas las tablas.
- En el menú desplegable de abajo (junto a "Con seleccionados:"), elige "Reparar tabla".
- phpMyAdmin intentará reparar las tablas dañadas. Verás un mensaje de éxito o error.
Si no funciona, optimiza y verifica
- Vuelve a seleccionar todas las tablas.
- Elige "Optimizar tabla" (libera espacio y reorganiza).
- Luego, "Verificar tabla" para comprobar si hay errores restantes.
[WARNING] Si la reparación falla, es posible que tengas que restaurar una copia de seguridad de la base de datos. Siempre mantén copias de seguridad actualizadas.
Paso 5: Comprueba los permisos del usuario MySQL
El usuario que usa PrestaShop debe tener permisos completos sobre la base de datos. Si los permisos se han modificado (por error o por un ataque), la conexión fallará.
Desde Syspanel (puerto 2106):
- Ve a "Bases de datos" > "Editar base de datos".
- Busca el usuario asignado a tu base de datos.
- Asegúrate de que tiene todos los privilegios marcados (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.). Si no, selecciona "Todos" y guarda.
Desde cPanel:
- En "Bases de datos MySQL", busca la sección "Usuarios en la base de datos".
- Marca la casilla del usuario y haz clic en "Agregar usuario a la base de datos" (si no está) o "Administrar privilegios".
- Selecciona "Todos los privilegios" y guarda.
[INFO] Si tu tienda usa un usuario específico para la base de datos (no el root), asegúrate de que el nombre del usuario esté correctamente vinculado a la base de datos. Por ejemplo:
usuario_mi_tiendavinculado abd_mi_tienda.
Paso 6: Verifica la versión de PHP y MySQL
PrestaShop es exigente con las versiones. Si tu hosting actualizó PHP o MySQL a una versión no compatible, la conexión puede fallar.
Versiones recomendadas para PrestaShop 8.x:
- PHP: 7.4, 8.0 o 8.1 (evita 8.2 si no está testeado).
- MySQL: 5.6, 5.7 o MariaDB 10.x.
Cómo comprobarlo:
- Desde tu panel de hosting, busca la opción "Seleccionar versión de PHP" (en Syspanel suele estar en "Web" > "PHP version").
- Asegúrate de que la versión sea compatible.
- Si no sabes la versión de MySQL, pregunta al soporte de tu hosting o revisa phpMyAdmin (en la página principal te muestra la versión).
[TIP] Si tu hosting solo tiene PHP 8.2, intenta cambiar a 8.1 o 7.4. A veces los módulos antiguos no son compatibles con versiones muy nuevas.
Paso 7: Comprueba si hay un plugin o tema conflictivo
Un módulo o tema mal codificado puede sobrescribir la conexión a la base de datos o generar consultas que la saturan. Esto es más común después de instalar algo nuevo.
Prueba de desactivación:
- Accede a tu panel de administración de PrestaShop (si puedes). Si no puedes, salta al siguiente método.
- Ve a "Módulos" > "Módulos instalados".
- Desactiva los módulos que hayas instalado recientemente.
- Si el error desaparece, reactívalos uno por uno para encontrar el culpable.
Si no puedes acceder al panel:
- Conéctate por FTP.
- Renombra la carpeta del módulo sospechoso (dentro de
/modules/) añadiendo_oldal final (ejemplo:mimodulo_old). - Prueba la web. Si funciona, ese módulo era el problema.
[WARNING] No borres la carpeta, solo renómbrala. Así podrás recuperar la configuración si luego lo arreglas.
Paso 8: Restaura una copia de seguridad (último recurso)
Si nada funciona, restaura una copia de seguridad de la base de datos anterior a que apareciera el error. Esto es seguro si tienes una copia reciente.
Desde phpMyAdmin:
- Ve a phpMyAdmin y selecciona tu base de datos.
- Haz clic en "Importar".
- Selecciona el archivo
.sqlde tu copia de seguridad. - Ejecuta la importación.
Desde Syspanel:
- Ve a "Bases de datos" > "Copias de seguridad".
- Elige una copia de seguridad automática (si las tienes activadas) o sube tu archivo.
- Haz clic en "Restaurar".
[INFO] Si no tienes copia de seguridad, contacta a tu hosting. Algunos proveedores hacen backups diarios y pueden restaurarlos.
Preguntas Frecuentes (FAQ)
¿Por qué veo "Error de conexión a la base de datos" después de mover mi tienda a otro hosting?
Es el error más común al migrar. Debes actualizar el archivo parameters.php con los nuevos datos de conexión (host, usuario, contraseña, nombre de base de datos) del nuevo servidor. Además, asegúrate de que la base de datos esté importada correctamente.
¿Qué hago si el error dice "Acceso denegado para el usuario 'usuario'@'localhost'"?
Significa que el usuario y la contraseña no coinciden con los que tiene MySQL registrados. Ve al panel de hosting, cambia la contraseña de ese usuario y actualiza el archivo de configuración de PrestaShop.
¿Puede un plugin de caché causar errores de base de datos?
Sí, especialmente si el plugin guarda en caché consultas corruptas. Desactiva cualquier plugin de caché (como "Cache" o "Performance") desde el panel de administración o renombrando su carpeta por FTP.
¿Cómo sé si mi base de datos está corrupta?
Si ves errores como "Table 'ps_product' doesn't exist" o "MySQL server has gone away", es probable que haya tablas dañadas. Usa phpMyAdmin para repararlas (Paso 4).
¿Es peligroso editar el archivo parameters.php?
No, siempre que uses un editor de texto plano y respetes la sintaxis (comillas, comas, etc.). Haz una copia de seguridad del archivo antes de editarlo.
[WARNING] No compartas nunca tu archivo
parameters.phposettings.inc.phpcon nadie. Contiene las credenciales de tu base de datos.
Conclusión
Los problemas de conexión MySQL PrestaShop pueden ser frustrantes, pero siguiendo esta guía paso a paso, la mayoría se resuelven sin necesidad de un técnico. Recuerda:
- Verifica que el servicio MySQL esté activo.
- Revisa y corrige el archivo de configuración.
- Cambia la contraseña si es necesario.
- Repara tablas dañadas.
- Comprueba permisos y versiones.
- Desactiva módulos conflictivos.
- Restaura una copia de seguridad como último recurso.
Si después de todo esto el error persiste, contacta a tu proveedor de hosting con el mensaje de error exacto. Ellos pueden revisar los logs del servidor para encontrar la causa raíz.
Espero que esta guía te haya sido de gran ayuda. ¡Tu tienda volverá a funcionar en poco tiempo! Si tienes más dudas, no dudes en escribirme. ¡Éxito!
