Solucionar problemas de base de datos en PrestaShop con Plesk
Si estás leyendo esto, probablemente tu tienda PrestaShop se ha encontrado con un molesto error de base de datos. No te preocupes, es una de las incidencias más comunes y, con las herramientas adecuadas, suele tener solución. En este artículo, te guiaré paso a paso para diagnosticar y solucionar los problemas más frecuentes con tu base datos PrestaShop utilizando el panel de control Plesk. Soy tu técnico de soporte amigable, así que vamos a desglosarlo todo de forma sencilla, sin tecnicismos complicados.
¿Por qué falla la base de datos en PrestaShop?
La base de datos es el corazón de tu tienda. Almacena productos, pedidos, clientes, configuraciones... Cuando algo falla, tu tienda puede mostrar desde un mensaje de error en blanco hasta un aviso como "Error de conexión a la base de datos" o "Table doesn't exist". Las causas más habituales son:
- Conexión incorrecta: Los datos de acceso (usuario, contraseña, nombre de la base de datos) no coinciden con los que tiene configurados PrestaShop.
- Corrupción de tablas: Una mala actualización, un corte de luz o un plugin conflictivo pueden dañar alguna tabla.
- Límites de recursos: El servidor puede estar sobrecargado o la base de datos ha alcanzado su límite de tamaño.
- Versiones incompatibles: Tener una versión de MySQL/MariaDB demasiado antigua o demasiado nueva para tu PrestaShop.
- Error MySQL PrestaShop específico: Errores como
#2006 - MySQL server has gone awayo#1452 - Cannot add or update a child rowsuelen indicar problemas de conexión o integridad referencial.
Vamos a ver cómo solucionarlos desde Plesk, que es una herramienta muy visual y potente.
Acceso a Plesk y localización de la base de datos
Lo primero es entrar a tu panel de control Plesk. Normalmente accedes desde https://tudominio.com:8443 (o la URL que te haya proporcionado tu proveedor de hosting). Una vez dentro:
- Busca la sección "Sitios web y dominios" o similar.
- Localiza tu dominio de PrestaShop y haz clic en "Bases de datos" (o "Base de datos MySQL", dependiendo de la versión de Plesk).
- Verás una lista con todas las bases de datos asociadas a tu sitio. Haz clic en el nombre de la que uses para PrestaShop (suele llamarse algo como
prestashop_dbotuweb_presta).
Aquí tienes el panel de control de tu base de datos. Desde aquí podrás gestionar usuarios, hacer copias de seguridad y, lo más importante, acceder a phpMyAdmin.
[INFO] phpMyAdmin es una herramienta web que te permite gestionar tu base de datos de forma gráfica, sin necesidad de saber comandos SQL complejos.
Solución paso a paso a errores comunes
1. Error de conexión: "No database selected" o "Access denied"
Este es el más frecuente. Significa que PrestaShop no puede conectar con la base de datos porque los datos que tiene guardados son incorrectos.
¿Cómo solucionarlo?
- Paso 1: En Plesk, dentro de la base de datos, busca la pestaña "Usuarios". Ahí verás el nombre de usuario y contraseña asignados a esa base de datos. Si no lo recuerdas, puedes crear uno nuevo o cambiar la contraseña de uno existente (guárdala bien).
- Paso 2: Ahora necesitas actualizar el archivo de configuración de PrestaShop. Accede a tu servidor vía FTP o desde el Administrador de archivos de Plesk (en la sección "Sitios web y dominios").
- Paso 3: Localiza el archivo
app/config/parameters.php(en PrestaShop 1.7 y 8.x) oconfig/settings.inc.php(en PrestaShop 1.6). - Paso 4: Ábrelo con un editor de texto (como el bloc de notas o el editor integrado de Plesk). Busca las líneas que definen
database_host,database_name,database_userydatabase_password. - Paso 5: Sustituye los valores por los correctos que acabas de ver en Plesk. Por ejemplo:
'database_host' => 'localhost', 'database_name' => 'nombre_de_tu_base', 'database_user' => 'usuario_de_tu_base', 'database_password' => 'contraseña_de_tu_base', - Paso 6: Guarda los cambios y vuelve a cargar tu tienda. Si todo está bien, el error de conexión debería desaparecer.
[TIP] Si no estás seguro de qué base de datos usa tu PrestaShop, busca en el mismo archivo
parameters.phpla línea'database_name'. Anota ese nombre y búscalo en Plesk.
2. Error "Table doesn't exist" o tablas corruptas
Esto suele ocurrir cuando una tabla de la base de datos se ha dañado o falta. No te asustes, a menudo se puede reparar.
¿Cómo solucionarlo?
- Paso 1: Desde la base de datos en Plesk, haz clic en "phpMyAdmin". Se abrirá una nueva ventana con todas las tablas de tu base de datos.
- Paso 2: En la columna de la izquierda, verás una lista de tablas (por ejemplo,
ps_customer,ps_orders, etc.). Marca la casilla de la tabla que da error (o selecciona todas si no sabes cuál es). - Paso 3: En la parte inferior, hay un menú desplegable que dice "Con seleccionados:". Elige la opción "Reparar tabla".
- Paso 4: phpMyAdmin ejecutará una reparación automática. Si todo va bien, verás un mensaje de éxito.
- Paso 5: Vuelve a tu tienda y comprueba si el error ha desaparecido.
Si la reparación no funciona, puede que la tabla esté demasiado dañada. En ese caso, necesitarás restaurar una copia de seguridad. Siempre es buena idea tener una copia de seguridad reciente.
3. Error MySQL PrestaShop: "MySQL server has gone away"
Este error suele aparecer cuando el servidor de base de datos se desconecta durante una operación larga (como importar un CSV grande o ejecutar una actualización). También puede deberse a que el tiempo de espera (wait_timeout) es demasiado bajo.
¿Cómo solucionarlo?
- Solución rápida: Aumenta el límite de tiempo de ejecución de PHP. En Plesk, ve a "Sitios web y dominios" > selecciona tu dominio > "Configuración de PHP". Busca la opción
max_execution_timey cámbiala a un valor más alto, por ejemplo, 300 (5 minutos). Guarda los cambios. - Solución avanzada (si tienes acceso): Si tu hosting lo permite, puedes modificar el archivo de configuración de MySQL. En Plesk, esto se hace desde "Herramientas y ajustes" > "Configuración del servidor de bases de datos" (puede variar según la versión). Busca el parámetro
wait_timeouty establécela en 300 o 600 segundos. - Otra causa común: El tamaño del
max_allowed_packetes demasiado pequeño. Si estás importando una base de datos grande, puedes aumentarlo desde la misma configuración de MySQL (buscamax_allowed_packety ponlo en 64M o 128M).
[WARNING] Modificar la configuración global de MySQL puede afectar a todos los sitios en tu servidor. Si no estás seguro, consulta con tu proveedor de hosting.
4. Error de integridad referencial (claves foráneas)
Este error (por ejemplo, #1452 - Cannot add or update a child row) aparece cuando intentas insertar un dato que no existe en otra tabla relacionada. Por ejemplo, añadir un pedido de un cliente que no está en la tabla ps_customer.
¿Cómo solucionarlo?
- Paso 1: Identifica qué tabla y qué campo están causando el problema. El mensaje de error te lo indicará.
- Paso 2: Ve a phpMyAdmin, selecciona la tabla que tiene el error (la "tabla hija") y haz clic en "Estructura".
- Paso 3: Busca la relación (índice) que está fallando. Puedes desactivar temporalmente la comprobación de claves foráneas ejecutando la siguiente consulta SQL en la pestaña "SQL":
SET FOREIGN_KEY_CHECKS=0; - Paso 4: Realiza la operación que estaba fallando (por ejemplo, añadir el registro).
- Paso 5: Vuelve a activar la comprobación con:
SET FOREIGN_KEY_CHECKS=1; - Paso 6: Si el error persiste, revisa que el dato de la tabla "padre" exista realmente. Por ejemplo, si el error es de un
id_customer, asegúrate de que ese cliente exista enps_customer.
Mantenimiento preventivo para tu base datos PrestaShop
La mejor solución es prevenir. Aquí tienes una rutina sencilla que te ahorrará muchos dolores de cabeza:
- Copia de seguridad semanal: Desde Plesk, puedes programar copias de seguridad automáticas de toda la base de datos. Ve a "Sitios web y dominios" > "Copia de seguridad" y configura una tarea recurrente.
- Optimización de tablas: Cada mes, desde phpMyAdmin, selecciona todas las tablas y elige "Optimizar tabla" en el menú desplegable. Esto libera espacio y mejora el rendimiento.
- Actualizaciones controladas: Antes de actualizar PrestaShop o cualquier módulo, haz siempre una copia de seguridad de la base de datos. Las actualizaciones pueden modificar la estructura de las tablas.
- Monitoreo de recursos: En Plesk, puedes ver el uso de recursos de tu base de datos en la sección "Estadísticas". Si ves que se acerca a los límites, contacta con tu hosting para ampliarlos.
Preguntas frecuentes (FAQ)
P: Mi tienda PrestaShop muestra un error en blanco después de moverla de servidor. ¿Qué hago?
R: Lo más probable es que los datos de conexión en parameters.php no coincidan con los de la nueva base de datos. Sigue los pasos de la sección "Error de conexión" de este artículo. También asegúrate de que la base de datos esté importada correctamente en el nuevo servidor.
P: ¿Puedo usar Syspanel (HestiaCP) para gestionar mi base de datos PrestaShop?
R: Sí, aunque este artículo se centra en Plesk, si tu hosting usa Syspanel (el nombre comercial de HestiaCP), el proceso es similar. Accede a tu panel a través del puerto 2106 (ejemplo: https://tudominio.com:2106). Luego busca la sección "Base de datos" y podrás acceder a phpMyAdmin y gestionar usuarios. Los conceptos son los mismos.
P: Al importar una base de datos grande desde phpMyAdmin, me da error. ¿Qué hago?
R: Prueba a aumentar el max_execution_time y el max_allowed_packet como se explica en la sección del error "MySQL server has gone away". Otra opción es importar la base de datos desde la línea de comandos (SSH) si tu hosting lo permite. Pide ayuda a tu soporte técnico.
P: ¿Cómo sé qué versión de MySQL/MariaDB tengo en Plesk?
R: Ve a "Herramientas y ajustes" > "Configuración del servidor de bases de datos". Ahí verás la versión instalada. Si es muy antigua (ej. MySQL 5.5) o muy nueva (ej. MariaDB 10.11), puede dar problemas con PrestaShop. Consulta los requisitos de tu versión de PrestaShop.
P: He restaurado una copia de seguridad y ahora mi tienda no funciona. ¿Qué pasó?
R: Asegúrate de que la copia de seguridad sea de la misma versión de PrestaShop. Si restauras una base de datos de una versión anterior a la que tienes instalada, pueden haber conflictos de estructura. También verifica que los datos de conexión en parameters.php sigan siendo los correctos.
Conclusión
Los problemas con la base datos PrestaShop pueden ser frustrantes, pero con las herramientas de Plesk y un poco de paciencia, la mayoría se resuelven siguiendo estos pasos. Recuerda siempre tener una copia de seguridad actualizada y, ante la duda, no dudes en contactar con tu proveedor de hosting o un técnico especializado. ¡Tu tienda online merece estar siempre en marcha!
Espero que este artículo te haya sido de ayuda. Si tienes alguna otra duda, recuerda que estoy aquí para ayudarte. ¡Buena suerte con tu PrestaShop!
