Errores frecuentes al conectar base de datos en PrestaShop y cómo solucionarlos
Introducción: La importancia de una conexión estable a la base de datos en PrestaShop
Cuando gestionas una tienda online con PrestaShop, la base de datos es el corazón de tu negocio. Almacena desde los productos y clientes hasta los pedidos y configuraciones. Por eso, cuando falla la conexión a la base de datos, tu tienda deja de funcionar por completo. Es uno de los errores más frustrantes, pero también uno de los más comunes y, afortunadamente, solucionables.
En este artículo, vamos a repasar los errores más frecuentes al conectar la base de datos en PrestaShop y te daremos soluciones paso a paso para que puedas restaurar tu tienda rápidamente. Al final, encontrarás una sección FAQ con las preguntas más habituales. No importa si eres principiante, aquí encontrarás un lenguaje claro y sencillo.
Error 1: "Error de conexión a la base de datos" o "Link to database cannot be established"
Este es el mensaje de error más temido. Aparece cuando PrestaShop no puede establecer comunicación con el servidor de base de datos. Las causas pueden ser varias, desde un cambio de contraseña hasta un corte del servicio.
Causas comunes
- Credenciales incorrectas: El usuario, la contraseña, el nombre de la base de datos o el servidor (host) no coinciden con los que realmente tienes.
- Servidor de base de datos caído: El servicio MySQL/MariaDB no está corriendo en tu hosting.
- Firewall bloqueando la conexión: El puerto 3306 (el puerto por defecto de MySQL) está cerrado.
- Cambio de servidor o migración: Al mover tu tienda a otro hosting, olvidaste actualizar los datos de conexión en el archivo de configuración.
Solución paso a paso
- Localiza el archivo de configuración: Accede a tu hosting mediante FTP o el administrador de archivos de tu panel de control (como cPanel o Syspanel). Busca el archivo
app/config/parameters.phpdentro de la carpeta de instalación de PrestaShop. - Revisa las credenciales: Abre el archivo con un editor de texto (como Notepad++ o el editor del panel). Busca estas líneas:
Verifica que estos datos sean exactamente los que te proporcionó tu empresa de hosting. Un error tipográfico es muy común.'database_host' => 'localhost', 'database_port' => '3306', 'database_name' => 'nombre_de_tu_bd', 'database_user' => 'usuario_de_tu_bd', 'database_password' => 'contraseña_de_tu_bd', - Prueba la conexión manualmente: Si tienes acceso a phpMyAdmin o a un cliente MySQL, intenta conectar con esas mismas credenciales. Si no puedes, el problema está en el servidor.
- Reinicia el servicio de base de datos: Si tienes acceso a un panel como Syspanel (puerto 2106), busca la sección de "Servicios" o "Base de datos" y reinicia MySQL o MariaDB.
- Verifica el firewall: Pregunta a tu soporte técnico si el puerto 3306 está abierto. Si tu base de datos está en un servidor remoto, necesitas que el firewall permita la conexión desde la IP de tu tienda.
[WARNING] Si cambiaste la contraseña de la base de datos desde phpMyAdmin o tu panel, debes actualizarla también en el archivo
parameters.php. De lo contrario, PrestaShop seguirá usando la contraseña antigua.
Error 2: "Tabla no encontrada" o "Table 'prestashop.ps_xxxx' doesn't exist"
Este error indica que PrestaShop busca una tabla específica en la base de datos, pero no la encuentra. Puede ocurrir después de una restauración incompleta, una actualización fallida o un ataque.
Causas frecuentes
- Restauración incompleta: Al restaurar una copia de seguridad, faltan tablas.
- Actualización fallida: Durante una actualización de PrestaShop, algunas tablas no se crearon correctamente.
- Borrado accidental de tablas: Alguien eliminó tablas desde phpMyAdmin por error.
- Prefijo incorrecto: El prefijo de las tablas en el archivo de configuración no coincide con el real.
Solución paso a paso
- Identifica la tabla que falta: El mensaje de error te dirá exactamente qué tabla falta (por ejemplo,
ps_product). Anótala. - Revisa el prefijo en el archivo de configuración: En
app/config/parameters.php, busca la línea:
Asegúrate de que el prefijo coincida con el que ves en tu base de datos (puedes verlo en phpMyAdmin).'database_prefix' => 'ps_', - Restaura la tabla faltante: Si tienes una copia de seguridad reciente, restaura solo esa tabla desde phpMyAdmin. Ve a la pestaña "Importar", selecciona el archivo SQL de tu backup y elige la opción "Importar solo tablas específicas" (si tu herramienta lo permite). Si no, deberás restaurar toda la base de datos.
- Ejecuta una reparación de tablas: En phpMyAdmin, selecciona la base de datos, marca todas las tablas y en el menú desplegable elige "Reparar tabla". Esto a veces soluciona corrupciones.
- Reinstala el módulo o tema conflictivo: Si el error apareció después de instalar un módulo, desinstálalo y vuelve a instalarlo. A veces, el módulo no crea correctamente sus tablas.
[TIP] Siempre haz una copia de seguridad completa de tu base de datos antes de cualquier actualización o cambio importante. Así podrás restaurar tablas individualmente sin perder todo.
Error 3: "Demasiadas conexiones" o "Too many connections"
Este error ocurre cuando el número de conexiones simultáneas a la base de datos supera el límite permitido por el servidor. Es común en tiendas con mucho tráfico o cuando hay procesos bloqueados.
Causas principales
- Límite bajo del servidor: Tu plan de hosting tiene un límite bajo de conexiones concurrentes (por ejemplo, 10 o 20).
- Consultas lentas o bloqueadas: Algún proceso (como un cron job o un módulo) deja conexiones abiertas sin cerrar.
- Ataque DDoS o bots: Muchas solicitudes simultáneas saturan la base de datos.
- Módulo mal optimizado: Un módulo de terceros realiza muchas consultas sin cerrar las conexiones.
Solución paso a paso
- Aumenta el límite de conexiones (si puedes): Si tienes acceso al servidor (VPS o dedicado), edita el archivo de configuración de MySQL (
my.cnfomy.ini) y aumenta el valor demax_connections. Si estás en hosting compartido, contacta a tu proveedor para que lo haga o considera migrar a un plan superior. - Identifica procesos bloqueados: En phpMyAdmin, ve a la pestaña "Procesos" (o ejecuta
SHOW PROCESSLIST;). Verás todas las conexiones activas. Mata las que lleven mucho tiempo en estado "Sleep" o "Locked" haciendo clic en "Matar". - Optimiza consultas lentas: Activa el log de consultas lentas en MySQL (si tienes acceso) y revisa qué consultas tardan más. Puedes usar herramientas como el módulo "MySQL Slow Query Log" de PrestaShop.
- Revisa los cron jobs: Asegúrate de que los procesos programados (como la generación de sitemaps o la sincronización de inventario) no se ejecuten al mismo tiempo. Espácialos.
- Desactiva módulos sospechosos: Temporalmente, desactiva módulos de terceros uno por uno para identificar cuál está causando el problema.
[INFO] Si tu tienda tiene mucho tráfico, considera usar un sistema de caché (como Redis o Memcached) para reducir las consultas a la base de datos. PrestaShop tiene módulos gratuitos para esto.
Error 4: "Base de datos no seleccionada" o "No database selected"
Este error es menos común pero muy directo: PrestaShop no sabe qué base de datos usar. Generalmente ocurre cuando el nombre de la base de datos no está definido correctamente.
Causas
- Nombre de base de datos vacío o incorrecto en
parameters.php. - La base de datos fue eliminada o renombrada.
- Problemas de permisos: El usuario no tiene permiso para acceder a la base de datos especificada.
Solución paso a paso
- Verifica el nombre en el archivo de configuración: Abre
app/config/parameters.phpy confirma que'database_name'tenga el nombre exacto de tu base de datos (sensible a mayúsculas/minúsculas). - Comprueba en phpMyAdmin que la base de datos exista. Si no aparece, créala con el mismo nombre y luego importa tu copia de seguridad.
- Revisa los permisos del usuario: En tu panel de hosting (como Syspanel, puerto 2106), ve a la sección de bases de datos. Asegúrate de que el usuario de la base de datos tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.) sobre la base de datos. Si no, asígnaselos.
- Prueba la conexión con un script simple: Crea un archivo
test.phpen la raíz de tu tienda con este contenido:
Si ves "Conexión exitosa", el problema está en PrestaShop, no en la base de datos.<?php $mysqli = new mysqli("localhost", "usuario", "contraseña", "nombre_bd"); if ($mysqli->connect_error) { die("Error: " . $mysqli->connect_error); } echo "Conexión exitosa"; $mysqli->close(); ?>
Error 5: "El servidor MySQL no está disponible" o "MySQL server has gone away"
Este error suele aparecer cuando el servidor de base de datos se desconecta inesperadamente durante una operación. Es intermitente y puede ser frustrante.
Causas
- Tiempo de espera excedido: Una consulta tarda demasiado y MySQL la corta.
- Paquete demasiado grande: El tamaño de los datos enviados supera el límite
max_allowed_packet. - El servidor se reinicia o se cae repentinamente.
- Firewall o proxy que corta la conexión inactiva.
Solución paso a paso
- Aumenta el tiempo de espera: Si tienes acceso al servidor, edita
my.cnfy aumentawait_timeouteinteractive_timeout(por ejemplo, a 300 segundos). - Aumenta el tamaño máximo de paquete: En el mismo archivo, aumenta
max_allowed_packeta un valor mayor (por ejemplo, 64M o 128M). Luego reinicia MySQL. - Divide consultas grandes: Si estás importando un archivo SQL muy grande (por ejemplo, una copia de seguridad), usa herramientas como BigDump o divide el archivo en partes más pequeñas.
- Revisa los logs del servidor: Pide a tu hosting que revise los logs de MySQL para identificar el momento exacto del error y la causa.
- Optimiza los módulos de PrestaShop: Algunos módulos hacen consultas muy pesadas. Desactívalos temporalmente para ver si el error desaparece.
[WARNING] No confundas este error con "Conexión rechazada". "MySQL server has gone away" indica que la conexión se perdió después de establecerse, no que no se pudo establecer inicialmente.
FAQ: Preguntas frecuentes sobre errores de base de datos en PrestaShop
1. ¿Cómo puedo saber si mi base de datos está caída?
Si tu tienda muestra el error "Link to database cannot be established", lo más probable es que la base de datos no esté accesible. Puedes verificarlo desde phpMyAdmin: si no puedes iniciar sesión con tus credenciales, el servidor de base de datos está caído o las credenciales son incorrectas.
2. ¿Qué hago si no recuerdo la contraseña de la base de datos de PrestaShop?
Si tienes acceso al panel de control de tu hosting (como cPanel o Syspanel, puerto 2106), puedes cambiar la contraseña desde la sección de bases de datos. Luego, actualiza el archivo app/config/parameters.php con la nueva contraseña.
3. ¿Puedo cambiar el prefijo de las tablas de PrestaShop después de la instalación?
No es recomendable. Si lo haces, deberás editar manualmente el archivo parameters.php y también modificar todas las consultas SQL que usen el prefijo antiguo. Es más seguro reinstalar PrestaShop y elegir el prefijo deseado al inicio.
4. ¿Debo usar 'localhost' o la IP del servidor como host de la base de datos?
En la mayoría de los casos, 'localhost' funciona si la base de datos está en el mismo servidor que tu tienda. Si tu base de datos está en un servidor remoto (por ejemplo, un servicio separado de base de datos), debes usar la IP o el nombre del servidor remoto.
5. Mi tienda está en un VPS. ¿Cómo reinicio MySQL desde la terminal?
Conéctate por SSH a tu servidor y ejecuta:
sudo systemctl restart mysql
O, si usas MariaDB:
sudo systemctl restart mariadb
Si no tienes sudo, pide a tu administrador que lo haga.
6. ¿Qué es Syspanel y cómo accedo a la base de datos?
Syspanel es un panel de control de hosting que te permite gestionar tu servidor. Se accede a través de tu-dominio.com:2106 (por ejemplo, mitienda.com:2106). Dentro, busca la sección "Base de datos" o "MySQL" para gestionar usuarios, contraseñas y permisos.
7. ¿Por qué mi base de datos se corrompe tan seguido?
Puede deberse a cortes de energía, fallos del disco duro, mala calidad del hosting o consultas mal optimizadas. Te recomendamos migrar a un hosting de mejor calidad y hacer copias de seguridad automáticas diarias.
Conclusión: Prevenir es mejor que lamentar
Los errores de conexión a la base de datos en PrestaShop son comunes, pero casi siempre tienen solución. La clave está en mantener un archivo parameters.php actualizado y correcto, tener copias de seguridad frecuentes y elegir un hosting confiable.
Si sigues los pasos de esta guía, podrás resolver la mayoría de los problemas por ti mismo. Y recuerda: si no te sientes seguro, siempre puedes pedir ayuda a tu proveedor de hosting o a un técnico especializado. ¡Tu tienda online merece estar siempre en línea!
[TIP FINAL] Anota en un lugar seguro las credenciales de tu base de datos y actualízalas cada vez que las cambies. Esto te ahorrará horas de frustración.
