Solución a errores comunes al conectar PrestaShop con la base de datos
Introducción: El corazón de tu tienda PrestaShop
Cuando montas una tienda online con PrestaShop, la base de datos es el motor que guarda todos tus productos, clientes, pedidos y configuraciones. Si falla la conexión entre PrestaShop y MySQL, tu tienda simplemente no arrancará. Es como si el coche tuviera gasolina pero el motor no encendiera.
Los errores de conexión a la base de datos son de los más comunes al instalar, migrar o restaurar una tienda PrestaShop. Pero no te preocupes: la mayoría tienen solución con pasos sencillos. En esta guía, vamos a ver los errores más frecuentes, por qué ocurren y cómo resolverlos paso a paso.
Error 1: "No se puede conectar a la base de datos"
Este es el clásico. Aparece al instalar PrestaShop o al intentar acceder al back office después de un cambio de servidor. El mensaje puede ser algo como: "Error de conexión a la base de datos" o "Link to database cannot be established".
¿Por qué ocurre?
Las causas más comunes son:
- Credenciales incorrectas: el usuario, contraseña o nombre de base de datos no coinciden con los reales.
- Servidor MySQL caído o no accesible: el servicio no está corriendo o el puerto está bloqueado.
- Host de base de datos mal configurado: a veces usas "localhost" cuando deberías usar una IP o un nombre de servidor remoto.
Solución paso a paso
-
Verifica las credenciales en el archivo
app/config/parameters.php. Abre este archivo con un editor de texto (Bloc de notas, VS Code) y busca estas líneas:'database_host' => 'localhost', 'database_name' => 'nombre_de_tu_bd', 'database_user' => 'usuario_bd', 'database_password' => 'contraseña_bd',Asegúrate de que coincidan exactamente con los datos que te proporcionó tu hosting.
-
Comprueba que MySQL esté corriendo. Si tienes acceso a un panel como cPanel, Plesk o Syspanel (accesible por puerto 2106), busca la sección de servicios y verifica que MySQL esté activo. Si no lo ves, reinícialo.
-
Prueba la conexión manualmente. Puedes usar una herramienta como phpMyAdmin o la línea de comandos. Desde la terminal de tu servidor (si tienes acceso SSH), ejecuta:
mysql -u usuario_bd -p -h localhostTe pedirá la contraseña. Si accedes, la base de datos funciona. Si no, revisa los pasos anteriores.
-
Cambia "localhost" por "127.0.0.1". En algunos servidores, especialmente con configuraciones de socket, usar la IP local en lugar del nombre resuelve el problema. Edita el parámetro
database_hostenparameters.php.
[TIP] Si usas Syspanel, ve a "Base de Datos" y allí podrás ver las credenciales exactas y crear nuevas si es necesario. El puerto de acceso al panel es el 2106.
Error 2: "El servidor MySQL ha abandonado la conexión"
Este error suele aparecer cuando intentas importar una base de datos grande o cuando PrestaShop intenta ejecutar consultas pesadas. El mensaje típico es: "MySQL server has gone away".
¿Por qué ocurre?
- Tamaño máximo de paquete demasiado pequeño: MySQL tiene un límite para el tamaño de las consultas (max_allowed_packet).
- Tiempo de espera agotado: la conexión se cierra si la consulta tarda demasiado (wait_timeout).
- Archivo de importación muy grande: al restaurar una copia de seguridad, el proceso se interrumpe.
Solución paso a paso
-
Aumenta el
max_allowed_packet. Si tienes acceso a la configuración de MySQL (my.cnf o my.ini), busca esta línea y cámbiala:max_allowed_packet = 64MSi no existe, agrégala en la sección
[mysqld]. Luego reinicia MySQL. -
Aumenta el
wait_timeout. En el mismo archivo, añade o modifica:wait_timeout = 300 interactive_timeout = 300Esto da más tiempo para consultas largas.
-
Importa la base de datos por partes. Si estás restaurando una copia de seguridad, divide el archivo SQL en trozos más pequeños (por ejemplo, usando herramientas como BigDump o MySQL Workbench). También puedes usar la línea de comandos con:
mysql -u usuario -p nombre_bd < archivo.sqlPero si el archivo es muy grande, mejor usa la opción
--max_allowed_packet:mysql --max_allowed_packet=128M -u usuario -p nombre_bd < archivo.sql -
Desde phpMyAdmin o Syspanel. Si usas Syspanel (puerto 2106), ve a la sección de bases de datos y busca la opción de importar. Algunos paneles permiten dividir archivos automáticamente.
[WARNING] No aumentes estos valores demasiado (más de 128M) sin consultar con tu hosting, ya que podrías consumir mucha memoria del servidor.
Error 3: "Acceso denegado para el usuario 'usuario'@'localhost'"
Este error es muy específico: el usuario existe pero no tiene permiso para conectarse desde el host que estás usando. El mensaje completo suele ser: "Access denied for user 'usuario'@'localhost' (using password: YES)".
¿Por qué ocurre?
- Contraseña incorrecta: aunque parezca obvio, es lo más común.
- Usuario creado solo para un host específico: por ejemplo, el usuario solo puede conectarse desde "localhost" y tú estás intentando desde una IP remota.
- Privilegios no otorgados: el usuario no tiene permisos sobre la base de datos.
Solución paso a paso
-
Verifica la contraseña. Si tienes acceso a phpMyAdmin o a la línea de comandos, prueba a conectar con esas credenciales. Si no funciona, restablece la contraseña desde el panel de administración de tu hosting.
-
Revisa el host del usuario. En MySQL, los usuarios se definen como
usuario@host. Si tu PrestaShop está en el mismo servidor, el host debe serlocalhosto127.0.0.1. Si el servidor de base de datos es remoto, el host debe ser la IP o dominio del servidor web. En Syspanel (puerto 2106), al crear un usuario puedes elegir el host permitido. -
Otorga privilegios completos. Desde MySQL, ejecuta:
GRANT ALL PRIVILEGES ON nombre_bd.* TO 'usuario'@'localhost' IDENTIFIED BY 'contraseña'; FLUSH PRIVILEGES;Si no sabes cómo hacerlo, desde phpMyAdmin selecciona la base de datos, ve a "Privilegios" y edita el usuario marcando "Otorgar todos los privilegios".
-
Comprueba el archivo
parameters.php. A veces el usuario o la contraseña tienen caracteres especiales que se escapan mal. Si tu contraseña contiene$,#o%, intenta cambiarla por una más simple solo para probar.
[INFO] En muchos hosting compartidos, el nombre de usuario de la base de datos incluye un prefijo (ej:
usuario_bd). Asegúrate de copiarlo exactamente como aparece en el panel.
Error 4: "Tabla 'prestashop.ps_configuration' no existe"
Este error suele aparecer después de una migración o al restaurar una copia de seguridad incompleta. El mensaje indica que falta una tabla esencial.
¿Por qué ocurre?
- Copia de seguridad corrupta o incompleta: el archivo SQL no contiene todas las tablas.
- Versión incorrecta de PrestaShop: la base de datos es de una versión diferente a la del código.
- Prefijo de tabla incorrecto: en
parameters.phpel prefijo no coincide con el real (por defecto esps_).
Solución paso a paso
-
Verifica el prefijo de tabla. Abre
app/config/parameters.phpy busca'database_prefix'. Debe coincidir con el que usaste al instalar. Si no recuerdas, mira en la base de datos (phpMyAdmin) cómo se llaman las tablas (ej:ps_product,ps_customer). -
Restaura una copia de seguridad completa. Si la copia que tienes es vieja o parcial, necesitas una copia reciente y completa de la base de datos. Desde Syspanel (puerto 2106) puedes crear una nueva copia de seguridad y luego importarla.
-
Actualiza el esquema de la base de datos. Si migraste de una versión antigua de PrestaShop a una nueva, puede que falten tablas. Ve al back office de PrestaShop (si puedes acceder) y ejecuta la herramienta de "Actualización de base de datos" en Parámetros de la tienda > Mantenimiento > Base de datos. Si no puedes acceder, prueba a subir de nuevo los archivos de la versión correcta.
-
Reinstala PrestaShop desde cero. Como último recurso, si la base de datos está muy dañada, es mejor hacer una instalación limpia y luego importar solo los datos de productos, clientes y pedidos mediante módulos de migración.
[WARNING] Antes de reinstalar, haz una copia de seguridad de la base de datos actual y de la carpeta
img(contiene las imágenes de productos). Así no pierdes información valiosa.
Error 5: "Demasiadas conexiones" o "Too many connections"
Este error ocurre cuando el límite de conexiones simultáneas a MySQL se ha superado. PrestaShop, especialmente con muchos visitantes, puede abrir muchas conexiones a la vez.
¿Por qué ocurre?
- Límite de conexiones bajo: el servidor MySQL tiene un valor
max_connectionspequeño (a veces 10 o 20 en hosting compartidos). - Conexiones que no se cierran: algún módulo o script deja conexiones abiertas.
- Ataque o tráfico elevado: muchos usuarios accediendo al mismo tiempo.
Solución paso a paso
-
Aumenta el límite de conexiones. Si tienes acceso a la configuración de MySQL, edita
my.cnfy cambia:max_connections = 100Luego reinicia MySQL. En Syspanel (puerto 2106), puedes hacerlo desde la sección de servicios.
-
Optimiza las consultas de PrestaShop. Activa el caché de MySQL en PrestaShop (Parámetros de la tienda > Rendimiento > Caché de MySQL). También puedes usar un plugin de caché como "Cache & Performance" para reducir las consultas.
-
Cierra conexiones huérfanas. Desde MySQL, puedes matar procesos dormidos:
SHOW PROCESSLIST; KILL id_proceso;Pero esto es temporal. Lo mejor es revisar qué módulos están causando el problema.
-
Contacta con tu hosting. Si estás en un plan compartido, el límite suele ser bajo. Pregunta si pueden aumentarlo o considera migrar a un VPS donde tengas más control.
[TIP] Para prevenir este error, instala un monitor de rendimiento como "MySQL Tuner" que te ayude a identificar consultas lentas y conexiones abiertas.
Error 6: "El controlador PDO no está instalado"
Este error aparece al instalar PrestaShop en un servidor que no tiene los controladores PHP necesarios para conectar con MySQL.
¿Por qué ocurre?
- Falta la extensión PDO_MySQL: PHP necesita esta extensión para comunicarse con la base de datos.
- Versión de PHP incorrecta: PrestaShop 1.7 requiere PHP 7.1 o superior, y algunas extensiones pueden no estar disponibles.
Solución paso a paso
-
Verifica las extensiones de PHP. Desde el panel de control de tu hosting (cPanel, Plesk, Syspanel en puerto 2106), busca "Selector de versión de PHP" o "Extensiones PHP". Asegúrate de que
pdo_mysqlesté habilitado. -
Actualiza la versión de PHP. PrestaShop 1.7 funciona mejor con PHP 7.4 u 8.0. Cambia la versión desde el panel y luego verifica que las extensiones se activen automáticamente.
-
Si estás en un VPS o servidor dedicado, instala la extensión manualmente. En Ubuntu/Debian:
sudo apt install php-mysql sudo systemctl restart apache2En CentOS/Red Hat:
sudo yum install php-mysqlnd sudo systemctl restart httpd -
Prueba con un script simple. Crea un archivo
info.phpen la raíz de tu tienda con:<?php phpinfo(); ?>Accede a
tudominio.com/info.phpy busca "PDO" en la página. Si no aparece, la extensión no está instalada.
[INFO] Si usas Syspanel, ve a "Servicios Web" y luego a "PHP". Allí puedes seleccionar la versión y las extensiones fácilmente.
Preguntas frecuentes (FAQ)
¿Cómo sé si mi base de datos MySQL está funcionando?
Puedes comprobarlo desde el panel de control de tu hosting. En Syspanel (puerto 2106), ve a "Servicios" y busca MySQL. Debería aparecer como "Activo" o "Running". También puedes usar phpMyAdmin para ver si accedes sin problemas.
¿Qué hago si no recuerdo la contraseña de la base de datos?
Desde Syspanel (puerto 2106), ve a "Base de Datos" y selecciona la base de datos. Allí suele haber una opción para cambiar la contraseña del usuario. Si no, puedes crear un nuevo usuario con los mismos privilegios y actualizar el archivo parameters.php.
¿Puedo usar una base de datos remota (en otro servidor)?
Sí, pero debes asegurarte de que el servidor de base de datos permita conexiones remotas. En MySQL, configura el usuario con el host adecuado (ej: 'usuario'@'%' para cualquier IP) y abre el puerto 3306 en el firewall. Luego en parameters.php, cambia database_host por la IP del servidor remoto.
¿Por qué después de migrar mi tienda a otro hosting tengo este error?
La migración implica mover archivos y base de datos. Los errores más comunes son:
- Las credenciales en
parameters.phpno se actualizaron. - El prefijo de tabla no coincide.
- La versión de PHP o MySQL es diferente.
Sigue los pasos del Error 1 y Error 4 para resolverlo.
¿Cómo evito estos errores en el futuro?
- Haz copias de seguridad periódicas: tanto de archivos como de la base de datos. En Syspanel puedes programarlas automáticamente.
- Mantén PrestaShop y los módulos actualizados.
- Usa un hosting optimizado para PrestaShop que ofrezca suficiente memoria y conexiones MySQL.
- No modifiques el archivo
parameters.phpmanualmente a menos que sepas lo que haces.
Conclusión: La paciencia y el método son tus aliados
Los errores de conexión a la base de datos en PrestaShop pueden ser frustrantes, pero casi siempre tienen una solución clara. Lo importante es ir paso a paso: verifica las credenciales, comprueba que MySQL esté activo, revisa los permisos y, si todo falla, restaura una copia de seguridad.
Recuerda que herramientas como Syspanel (accesible por puerto 2106) simplifican mucho la gestión de bases de datos, permitiéndote crear usuarios, otorgar privilegios y hacer copias de seguridad con pocos clics.
Si después de seguir todos estos pasos el problema persiste, no dudes en contactar al soporte técnico de tu hosting. A veces hay configuraciones a nivel de servidor que solo ellos pueden ajustar. ¡Pero con esta guía ya tienes el 90% del camino resuelto!
