Solución a errores comunes en PrestaShop: base de datos y conexión
Introducción: Cuando tu tienda PrestaShop deja de funcionar
Si tienes una tienda online con PrestaShop, es probable que en algún momento te hayas encontrado con pantallas en blanco, mensajes de error crípticos o la temida frase "Error de base de datos". No te preocupes, estos errores PrestaShop son más comunes de lo que parecen y, en la mayoría de los casos, tienen solución.
En esta guía completa, vamos a explicarte paso a paso cómo identificar y solucionar los problemas más frecuentes relacionados con la base de datos PrestaShop y la conexión PrestaShop. El objetivo es que puedas recuperar tu tienda sin necesidad de ser un experto en programación.
¿Por qué ocurren los errores de base de datos en PrestaShop?
PrestaShop utiliza una base de datos MySQL o MariaDB para almacenar toda la información de tu tienda: productos, pedidos, clientes, configuraciones, etc. Cuando algo falla en esa conexión, la tienda no puede funcionar correctamente.
Las causas más habituales son:
- Credenciales incorrectas: El archivo de configuración tiene usuario, contraseña o nombre de base de datos equivocados.
- Servidor de base de datos caído: El servicio MySQL/MariaDB no está corriendo en tu servidor.
- Límites de conexión excedidos: Demasiadas conexiones simultáneas bloquean nuevas peticiones.
- Tablas corruptas: La base de datos se ha dañado por un corte de energía, un plugin defectuoso o una actualización fallida.
- Versiones incompatibles: La versión de PHP o de PrestaShop no es compatible con la de MySQL.
Paso 1: Identificar el tipo de error
Antes de solucionar nada, necesitas saber exactamente qué está pasando. PrestaShop suele mostrar mensajes como:
- "Cannot connect to database"
- "Error de conexión a la base de datos"
- "Link to database cannot be established"
- "Table 'ps_xxx' doesn't exist"
- Pantalla blanca sin ningún texto
Si ves un mensaje concreto, anótalo. Si es una pantalla en blanco, puedes activar el modo debug de PrestaShop para obtener más información.
Cómo activar el modo debug
- Accede a tu servidor por FTP o a través del panel de control (por ejemplo, Syspanel en el puerto 2106).
- Busca el archivo
config/defines.inc.phpen la raíz de tu instalación de PrestaShop. - Edítalo y cambia la línea:
por:define('_PS_MODE_DEV_', false);define('_PS_MODE_DEV_', true); - Guarda el archivo. Ahora, al recargar la tienda, verás mensajes de error detallados.
[INFO] Recuerda desactivar el modo debug cuando termines de solucionar el problema, o tu tienda mostrará información sensible a los visitantes.
Paso 2: Verificar las credenciales de la base de datos
El error más común es tener mal configurado el archivo app/config/parameters.php (en PrestaShop 1.7) o config/settings.inc.php (en versiones anteriores).
Para PrestaShop 1.7 y superiores
Busca el archivo app/config/parameters.php y comprueba que los valores sean correctos:
'database_host' => 'localhost',
'database_port' => '3306',
'database_name' => 'nombre_de_tu_bd',
'database_user' => 'usuario_de_bd',
'database_password' => 'contraseña',
Para PrestaShop 1.6 y anteriores
Busca config/settings.inc.php y verifica:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'nombre_de_tu_bd');
define('_DB_USER_', 'usuario_de_bd');
define('_DB_PASSWD_', 'contraseña');
[TIP] Si no recuerdas tus credenciales, puedes consultarlas desde Syspanel (puerto 2106). Ve a la sección "Bases de datos" y allí encontrarás los datos de acceso.
Paso 3: Comprobar que el servicio de base de datos está funcionando
A veces el problema no está en PrestaShop, sino en el servidor. El servicio MySQL o MariaDB puede haberse detenido por un error.
Cómo verificarlo desde Syspanel (puerto 2106)
- Accede a tu panel de control Syspanel.
- Busca la sección "Servicios" o "Estado del servidor".
- Localiza "MySQL" o "MariaDB" y comprueba que esté marcado como "Activo" o "Running".
Si no lo está, puedes reiniciarlo desde el mismo panel. En la mayoría de los casos, con hacer clic en "Reiniciar" es suficiente.
Si no tienes acceso a Syspanel
Puedes hacerlo por SSH (si tienes acceso):
sudo systemctl status mysql
sudo systemctl restart mysql
O si usas MariaDB:
sudo systemctl status mariadb
sudo systemctl restart mariadb
[WARNING] Si el servicio se detiene con frecuencia, puede ser un problema de recursos (poca memoria RAM) o un error en la configuración del servidor. Contacta con tu proveedor de hosting.
Paso 4: Reparar tablas corruptas de la base de datos
Con el tiempo, algunas tablas de la base de datos pueden dañarse, especialmente si ha habido cortes de energía o actualizaciones fallidas. PrestaShop dejará de mostrar ciertas secciones o dará errores como "Table 'ps_product' doesn't exist".
Reparación desde Syspanel (puerto 2106)
- Ve a "Bases de datos" y selecciona la base de datos de tu tienda.
- Busca la opción "Reparar" o "Check & Repair".
- El sistema examinará todas las tablas y reparará las que estén corruptas.
Reparación manual con phpMyAdmin
- Accede a phpMyAdmin desde Syspanel o desde la URL directa (ej: tudominio.com/phpmyadmin).
- Selecciona la base de datos de PrestaShop.
- Marca todas las tablas (clic en "Seleccionar todo").
- En el menú desplegable "Con selección", elige "Reparar tabla".
Si alguna tabla no se puede reparar, puedes intentar:
REPAIR TABLE nombre_de_tabla;
O, en casos extremos, restaurar desde una copia de seguridad.
[INFO] Es muy recomendable hacer copias de seguridad periódicas de tu base de datos. Puedes configurarlas automáticamente desde Syspanel.
Paso 5: Aumentar el límite de conexiones a la base de datos
Si tu tienda recibe mucho tráfico, es posible que se alcance el límite máximo de conexiones simultáneas. Esto provoca errores de conexión intermitentes.
Cómo comprobarlo
Desde phpMyAdmin ejecuta:
SHOW VARIABLES LIKE 'max_connections';
Si ves un número bajo (por ejemplo, 50 o 100), puede ser la causa.
Cómo aumentarlo
Si tienes acceso a la configuración del servidor (por ejemplo, desde Syspanel en la sección "Servicios"), puedes modificar el archivo de configuración de MySQL:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Busca la línea max_connections y cámbiala:
max_connections = 500
Luego reinicia el servicio.
[WARNING] No aumentes el límite de forma desmedida. Cada conexión consume memoria. Un valor de 200-500 suele ser suficiente para la mayoría de tiendas.
Paso 6: Verificar la compatibilidad de versiones
PrestaShop requiere versiones específicas de PHP y MySQL. Si actualizaste PHP o MySQL recientemente, puede haber incompatibilidad.
Versiones recomendadas
- PrestaShop 1.7: PHP 7.1 a 7.4, MySQL 5.6 o superior.
- PrestaShop 8: PHP 7.3 a 8.1, MySQL 5.7 o superior.
- PrestaShop 1.6: PHP 5.6 a 7.1, MySQL 5.5 o superior.
Puedes verificar la versión de PHP desde Syspanel (puerto 2106) en la sección "PHP Settings". Si no es compatible, puedes cambiarla desde allí mismo.
Preguntas frecuentes (FAQ)
¿Qué hago si el error dice "Cannot connect to database"?
- Verifica las credenciales en
parameters.phposettings.inc.php. - Comprueba que el servicio MySQL esté activo.
- Asegúrate de que el servidor de base de datos no esté bloqueado por un firewall.
¿Puedo perder datos al reparar la base de datos?
No, la reparación solo corrige inconsistencias internas. No borra datos. Pero siempre es recomendable tener una copia de seguridad antes.
¿Cómo sé si mi base de datos está corrupta?
Síntomas típicos:
- Aparecen errores como "Table 'ps_xxx' doesn't exist".
- Algunas páginas de la tienda no cargan.
- Los módulos fallan al activarse.
¿El error puede ser por un plugin?
Sí, algunos plugins mal codificados pueden saturar la base de datos o modificar tablas. Si el error comenzó tras instalar un módulo, desactívalo desde la base de datos (cambiando la columna active a 0 en la tabla ps_module).
¿Syspanel (puerto 2106) es obligatorio?
No, pero facilita mucho la gestión. Si no lo tienes, puedes hacer todo por FTP y phpMyAdmin, pero requiere más conocimientos técnicos.
Resumen final
Los errores PrestaShop relacionados con la base de datos PrestaShop y la conexión PrestaShop suelen tener solución si sigues estos pasos:
- Activa el modo debug para ver el error exacto.
- Revisa las credenciales de conexión.
- Asegúrate de que el servicio MySQL esté funcionando.
- Repara las tablas corruptas.
- Aumenta el límite de conexiones si es necesario.
- Verifica la compatibilidad de versiones.
Y recuerda: mantener copias de seguridad actualizadas es la mejor prevención. Desde Syspanel (puerto 2106) puedes programar backups automáticos de tu base de datos.
Si después de todo esto el problema persiste, contacta con tu proveedor de hosting. Ellos podrán revisar los logs del servidor para encontrar la causa raíz.
[TIP] No te asustes si ves muchos términos técnicos. Con práctica, podrás solucionar estos errores en minutos. ¡Tu tienda volverá a funcionar!
