Cómo solucionar errores comunes de conexión a MySQL en PrestaShop
¿Tu tienda PrestaShop se ha quedado en blanco, te aparece el famoso "Error de conexión a la base de datos" o un mensaje críptico sobre tablas? No te preocupes, respira hondo. Este es uno de los sustos más comunes en el mundo del eCommerce, pero también uno de los que tiene solución más clara si sigues los pasos adecuados.
En esta guía extensa y práctica, vamos a desgranar los errores más comunes de conexión a MySQL en PrestaShop, explicando por qué ocurren y, lo más importante, cómo solucionarlos paso a paso. No necesitas ser un experto en servidores para la mayoría de estas soluciones, solo un poco de paciencia y seguir el orden lógico que te propongo.
Primeros Auxilios: Diagnóstico Rápido del Error
Antes de lanzarnos a modificar archivos o bases de datos, debemos entender qué está pasando exactamente. PrestaShop no suele dar mucha información en pantalla, por lo que tendremos que investigar un poco.
El Mensaje Genérico vs. El Log de Errores
Cuando tu tienda dice "Error de conexión a la base de datos" o "Prestashop mysql error", no siempre significa que la base de datos haya explotado. A veces es un simple cambio de contraseña o un servidor saturado.
Para ver el error real, necesitas acceder al panel de control de tu hosting (si usas Syspanel, recuerda que el acceso es por el puerto 2106) y buscar la sección de "Logs" o "Registros de errores". Ahí verás líneas de error más descriptivas, como Table 'ps_shop_url' doesn't exist o Access denied for user 'usuario'@'localhost'.
[INFO] Anota el texto exacto del error. Eso nos dirá si el problema es de credenciales, de permisos o de integridad de las tablas.
Comprobación Rápida de Credenciales
El error más básico y común es que las credenciales de acceso a la base de datos hayan cambiado o estén mal escritas. Esto pasa mucho si has migrado de hosting o si tu proveedor ha hecho cambios de seguridad.
Para comprobarlo, necesitas dos datos:
- La contraseña actual de la base de datos MySQL.
- El archivo de configuración de PrestaShop.
El archivo clave se llama parameters.php y se encuentra en la carpeta app/config/ de tu instalación de PrestaShop (en versiones antiguas, era config/settings.inc.php). Ábrelo con un editor de texto plano (como el Bloc de notas) y busca las líneas que empiezan por 'database_password' y 'database_user'.
Si esos datos no coinciden con los que te da tu hosting, ya has encontrado el problema. Pero, ¿y si coinciden? Entonces seguimos investigando.
Error 1: "Access Denied" – Credenciales Incorrectas o Permisos
Este es el clásico prestashop mysql error que te impide entrar a la tienda. El mensaje suele ser similar a: SQLSTATE[HY000] [1045] Access denied for user 'tu_usuario'@'localhost' (using password: YES).
Solución Paso a Paso para el Error de Acceso
- Verifica en el Panel de Hosting: Entra a tu panel (Syspanel o el que uses) y ve a la sección de Bases de Datos MySQL.
- Reinicia la Contraseña: Aunque creas que es la misma, a veces un caracter especial se codifica mal en el archivo. La solución más segura es generar una contraseña nueva desde el panel de control para tu base de datos.
- Actualiza el Archivo de Configuración: Copia la nueva contraseña y pégala en el archivo
parameters.phpen la línea'database_password' => 'AQUI_VA_TU_NUEVA_CONTRASEÑA',. Guarda el archivo. - Limpia la Caché: PrestaShop guarda la configuración en caché. Borra el contenido de la carpeta
var/cache/(ocache/en versiones antiguas) excepto el archivo.htaccessy la carpetaindex.phpsi existen. Sube los cambios por FTP.
[WARNING] Si usas caracteres especiales como #$%& en la contraseña, asegúrate de que el editor de texto no los convierta a caracteres "inteligentes" o comillas, ya que eso rompería la sintaxis del archivo PHP.
Error 2: "Table doesn't exist" – Tablas Corruptas o Perdidas
Este error es más grave y suele aparecer tras una restauración incompleta o un corte de luz durante una actualización. Verás algo como: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'tu_basededatos.ps_product' doesn't exist.
Aquí hablamos de un error tabla prestashop. Significa que la estructura de tu base de datos está dañada o le faltan piezas.
Solución: Reparar las Tablas con phpMyAdmin
- Accede a phpMyAdmin: Desde tu panel de control de hosting, busca el icono de phpMyAdmin (suele estar en la sección de Bases de Datos).
- Selecciona tu Base de Datos: En el panel izquierdo, haz clic en el nombre de la base de datos que usa tu PrestaShop.
- Selecciona Todas las Tablas: En la parte inferior de la lista de tablas, verás un enlace que dice "Seleccionar todo".
- Elige la Opción "Reparar": En el menú desplegable que dice "Con seleccionado:", elige "Reparar tabla". Esto ejecutará una operación de mantenimiento que arregla errores comunes de estructura.
Si el problema persiste, puede que la tabla esté tan dañada que necesites restaurarla desde una copia de seguridad.
[TIP] Si no tienes una copia de seguridad reciente, puedes intentar crear una tabla vacía con el mismo nombre y luego importar los datos desde un volcado antiguo. Es un proceso más complejo, pero a veces es la única salvación.
Error 3: "Too many connections" – Servidor Saturado
¿Ves un error como SQLSTATE[HY000] [1040] Too many connections? Esto no es un problema de tu tienda, sino del servidor de bases de datos. Significa que el límite de conexiones simultáneas se ha alcanzado, posiblemente por picos de tráfico o por un plugin mal configurado.
Cómo Solucionar la Saturación de Conexiones
- Reinicia el Servicio de MySQL: Desde el panel de control de tu hosting (Syspanel), busca la opción de "Servicios" o "Reiniciar MySQL". Esto liberará las conexiones colgadas al instante.
- Reduce el Número de Conexiones en PrestaShop: Accede a tu panel de administración de PrestaShop (si puedes) y ve a Parámetros Avanzados > Rendimiento. Ahí encontrarás una opción para limitar el número de conexiones a la base de datos. Reducirlo a un valor más bajo (ej. de 300 a 150) puede aliviar la presión.
- Optimiza las Consultas: Si el problema es recurrente, es síntoma de que hay módulos o consultas muy lentas. Desactiva módulos que no uses y considera contratar un plan de hosting con más recursos.
[INFO] Este error es más común en servidores compartidos donde varios sitios usan el mismo MySQL. Si es tu caso, plantéate migrar a un VPS.
Error 4: "Connection refused" – El Puerto o el Host están Mal
Este error es menos común en hosting compartido, pero típico si has movido tu tienda a un servidor dedicado o VPS. El mensaje suele ser: SQLSTATE[HY000] [2002] Connection refused.
Configurando la Conexión desde Cero
- Revisa el Host de la Base de Datos: En tu archivo
parameters.php, busca la línea'database_host'. Habitualmente eslocalhosto127.0.0.1, pero en algunos servidores gestionados (como los de Syspanel) puede ser un nombre de host específico comomysql.tudominio.com. - Verifica el Puerto: PrestaShop usa el puerto 3306 por defecto para MySQL. Si tu servidor usa otro (por ejemplo, 3307), deberás añadir la línea
'database_port' => '3307',en el archivo de configuración. - Prueba la Conexión con un Script: Crea un archivo PHP en la raíz de tu tienda llamado
test.phpcon el siguiente contenido:
<?php
$conn = mysqli_connect('HOST_AQUI', 'USUARIO_AQUI', 'PASS_AQUI');
if ($conn) {
echo "Conexión exitosa";
} else {
echo "Error: " . mysqli_connect_error();
}
?>
Sustituye los valores y accede a tudominio.com/test.php. Si te da error, el problema es de red o de configuración del servidor, no de PrestaShop. Borra el archivo después de la prueba por seguridad.
Error 5: "Base de datos no encontrada" – Selección de la BD
A veces, el error dice SQLSTATE[HY000] [1049] Unknown database 'nombre_bd'. Esto es más simple de lo que parece: PrestaShop está intentando conectarse a una base de datos que no existe.
Solución para la Base de Datos Desconocida
- Verifica el Nombre en el Panel: En tu hosting, ve a la lista de bases de datos. Es muy común que el proveedor le añada un prefijo (ej.
usuario123_nombre_bd). Si tu archivoparameters.phpsolo dicenombre_bd, está mal. - Corrige el Archivo: Actualiza el valor de
'database_name'enparameters.phpcon el nombre exacto que ves en tu panel de control. - Crea la Base de Datos (si no existe): Si realmente no existe, créala desde el panel y luego importa un volcado SQL de tu tienda si lo tienes.
Prevención: Mantén tu PrestaShop Sano
Una vez que hayas solucionado el error, es vital prevenir que vuelva a ocurrir. La mayoría de estos sustos se deben a una mala gestión o a descuidos.
Buenas Prácticas para Evitar Errores de MySQL
- Realiza Copias de Seguridad Automáticas: Configura tu hosting para que haga un backup diario de la base de datos. En Syspanel, puedes programarlo fácilmente desde la sección de "Backups".
- Actualiza con Cuidado: Antes de actualizar PrestaShop a una versión mayor, haz siempre una copia de seguridad completa (archivos + BD). Las actualizaciones fallidas son la causa #1 de tablas corruptas.
- Evita Modificar Tablas Directamente: Si no sabes exactamente qué estás haciendo en phpMyAdmin, no borres ni edites filas. Un error humano puede dejar tu tienda inutilizada.
- Controla los Módulos: Los módulos mal codificados pueden generar consultas infinitas y saturar la base de datos. Instala solo módulos de fuentes fiables y manténlos actualizados.
Resumen Rápido (FAQ)
Para terminar, aquí tienes un resumen de las preguntas más frecuentes que resolvemos en soporte técnico sobre este tema.
¿Por qué mi PrestaShop muestra un error de conexión tras cambiar la contraseña de MySQL?
Porque el archivo parameters.php no se ha actualizado con la nueva contraseña. Debes editar ese archivo y limpiar la caché de PrestaShop.
¿Cómo sé si mi base de datos está corrupta?
Si ves errores como "Table doesn't exist" o "Base table or view not found", lo más probable es que alguna tabla esté dañada o faltante. Repara las tablas desde phpMyAdmin.
¿Qué hago si no puedo acceder al panel de administración de PrestaShop?
Puedes acceder a tu base de datos por phpMyAdmin y a los archivos por FTP. Con esas dos herramientas, puedes arreglar el problema sin necesidad de entrar al panel. Si el problema es de permisos, también puedes desactivar módulos problemáticos renombrando la carpeta modules/nombre_modulo.
¿Es normal que el error aparezca después de migrar de hosting?
Sí, es muy común. Generalmente se debe a que los datos de conexión (host, usuario, contraseña) cambian en el nuevo servidor. Revisa siempre el archivo parameters.php después de una migración.
¿El error "Too many connections" significa que mi tienda es muy popular?
No necesariamente. Puede significar que hay un bucle en un módulo o que tu plan de hosting es insuficiente. Revisa los logs para ver qué consultas se están ejecutando.
Espero que esta guía te haya sido de gran ayuda. Recuerda que la paciencia es clave. Ve paso a paso, no saltes a conclusiones y verifica cada cambio. Si el problema persiste tras seguir todos estos consejos, es momento de contactar con tu proveedor de hosting, ya que el problema puede estar en el servidor mismo y requerir un ajuste más profundo. ¡Mucha suerte con tu tienda!
