🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Solución a problemas de conexión a base de datos en PrestaShop

Actualizado el 27 de noviembre de 2025

¿Tu tienda PrestaShop se ha quedado en blanco o muestra un mensaje de error crítico relacionado con la base de datos? No te preocupes, es una de las incidencias más comunes en tiendas online y, por suerte, en la mayoría de los casos tiene solución. En esta guía extensa y paso a paso, te explicaré cómo diagnosticar y resolver los problemas de conexión a base de datos en PrestaShop, incluyendo el temido error base datos PrestaShop y fallos en la conexión MySQL PrestaShop.

Vamos a desglosar las causas más frecuentes y las soluciones prácticas, desde lo más simple (como reiniciar servicios) hasta lo más técnico (como reparar tablas o editar archivos de configuración). Todo explicado de forma clara, para que puedas seguir los pasos aunque no seas un experto en servidores.


¿Por qué aparece un error de base de datos en PrestaShop?

La base de datos es el corazón de tu tienda: almacena productos, pedidos, clientes, configuraciones y contraseñas. Cuando algo falla en la comunicación entre PrestaShop y MySQL, el sistema no puede funcionar. Los síntomas típicos son:

  • Pantalla en blanco (White Screen of Death).
  • Mensaje: “Error de conexión a la base de datos” o “Cannot connect to database”.
  • Mensaje: “Error de MySQL: Table ‘...’ doesn’t exist” o “Can’t connect to MySQL server on ‘localhost’”.
  • La tienda carga muy lento o solo algunas páginas funcionan.

Las causas principales suelen ser:

  1. Credenciales incorrectas en el archivo /app/config/parameters.php.
  2. Servicio MySQL/MariaDB caído o sobrecargado en el servidor.
  3. Tablas corruptas o base de datos dañada.
  4. Límite de conexiones excedido (usuario MySQL con demasiadas conexiones simultáneas).
  5. Problemas de permisos en los archivos de configuración.
  6. Cambios en el servidor (migración, actualización de PHP o MySQL, cambio de contraseña).

Paso 1: Lo primero, verifica el estado del servidor (sin tocar código)

Antes de abrir archivos o ejecutar comandos, asegúrate de que el problema no sea momentáneo o general del hosting.

### 1.1. Comprueba si otros sitios web funcionan

Si tienes otros sitios en el mismo hosting, intenta acceder a ellos. Si todos fallan, el problema es del servidor (caída general). Contacta con tu proveedor de hosting o revisa el panel de control.

### 1.2. Reinicia el servicio MySQL desde el panel de control (Syspanel)

Si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso es a través del puerto 2106. Sigue estos pasos:

  1. Abre tu navegador y ve a https://tudominio.com:2106 (o la IP de tu servidor).
  2. Inicia sesión con tu usuario y contraseña de Syspanel.
  3. Busca la sección Servicios o Service Status.
  4. Localiza MySQL o MariaDB.
  5. Haz clic en Reiniciar o Restart.

[TIP] A veces, simplemente reiniciar el servicio resuelve el error de conexión temporal. Hazlo siempre como primer paso.

Si no ves la opción de reinicio, desde la terminal (SSH) puedes ejecutar (si tienes acceso root):

sudo systemctl restart mysql

O para MariaDB:

sudo systemctl restart mariadb

Paso 2: Revisa el archivo de configuración de PrestaShop (parameters.php)

Este archivo contiene las credenciales de acceso a la base de datos. Si está mal escrito o desactualizado, la conexión falla.

### 2.1. Localiza el archivo

Usando un cliente FTP (como FileZilla) o el administrador de archivos de tu hosting, navega hasta la carpeta raíz de tu tienda PrestaShop. La ruta típica es:

/app/config/parameters.php

O en versiones antiguas:

/config/settings.inc.php

### 2.2. Verifica los datos de conexión

Abre el archivo con un editor de texto (no uses Word, usa Notepad++ o similar). Busca líneas como:

'database_host' => 'localhost',
'database_port' => '3306',
'database_name' => 'nombre_de_tu_bd',
'database_user' => 'usuario_mysql',
'database_password' => 'contraseña_segura',

Asegúrate de que coincidan exactamente con los datos de tu base de datos. Errores comunes:

  • El host no es localhost sino una IP como 127.0.0.1 o un servidor remoto.
  • El puerto no es el 3306 (a veces es 3307 o 3308).
  • La contraseña contiene caracteres especiales que deben escaparse (aunque PrestaShop lo maneja bien, es mejor usar comillas simples).

[WARNING] Si cambiaste recientemente la contraseña de MySQL, debes actualizarla aquí también. De lo contrario, PrestaShop no podrá conectarse.

### 2.3. ¿No recuerdas la contraseña? Puedes obtenerla desde Syspanel

Si tienes acceso a Syspanel (puerto 2106):

  1. Ve a Base de Datos o Databases.
  2. Busca la base de datos asociada a tu tienda.
  3. Haz clic en Editar o Show Password para ver la contraseña actual.
  4. Copia esos datos exactamente en el archivo parameters.php.

Paso 3: Repara tablas corruptas de la base de datos

Las tablas pueden corromperse por cortes de energía, errores de disco o actualizaciones fallidas. Esto provoca el error "Table doesn't exist" o "Table is marked as crashed".

### 3.1. Usa phpMyAdmin (la herramienta más fácil)

  1. Accede a phpMyAdmin desde tu panel de control (Syspanel suele tener un enlace directo).
  2. Selecciona la base de datos de tu tienda (la misma que aparece en parameters.php).
  3. Marca todas las tablas (clic en "Seleccionar todo").
  4. En el menú desplegable "Con seleccionados", elige Reparar tabla (o Repair table).

Esto intentará reparar cualquier tabla dañada. Si el proceso falla, puedes probar con Optimizar tabla o Forzar reparación.

### 3.2. Desde la línea de comandos (SSH)

Si tienes acceso SSH, es más rápido:

mysqlcheck -u usuario_mysql -p --auto-repair --all-databases

Te pedirá la contraseña del usuario MySQL. Esto revisará y reparará todas las bases de datos.

[INFO] Si el error persiste después de reparar, puede que la tabla esté demasiado dañada y necesites restaurar desde un backup. Siempre ten copias de seguridad recientes.


Paso 4: Aumenta el límite de conexiones MySQL

Si tu tienda recibe mucho tráfico o tienes muchos procesos en segundo plano (cron jobs, módulos), podrías exceder el límite de conexiones simultáneas. El error típico es: "Too many connections".

### 4.1. Verifica el límite actual

En phpMyAdmin, ve a la pestaña Estado o Status y busca Max_used_connections. Si está cerca del valor de max_connections, necesitas aumentarlo.

### 4.2. Cómo aumentarlo (si tienes acceso root)

Edita el archivo de configuración de MySQL (my.cnf o my.ini). La ubicación típica es /etc/mysql/my.cnf o /etc/my.cnf. Busca la línea:

max_connections = 150

Cámbiala a un valor mayor, por ejemplo 300 o 500. Luego reinicia MySQL:

sudo systemctl restart mysql

[WARNING] No aumentes demasiado el límite si tu servidor tiene poca RAM. Cada conexión consume recursos. Consulta con tu hosting si no estás seguro.


Paso 5: Verifica los permisos de archivos y carpetas

A veces, el archivo parameters.php tiene permisos incorrectos que impiden que PrestaShop lo lea.

### 5.1. Permisos recomendados

  • parameters.php debe tener permisos 644 (lectura y escritura para el propietario, solo lectura para grupo y otros).
  • La carpeta config/ debe tener permisos 755.
  • Toda la carpeta app/ debe tener permisos 755 (no 777 por seguridad).

Puedes cambiarlos desde tu cliente FTP: haz clic derecho sobre el archivo/carpeta -> Permisos o File permissions.


Paso 6: Comprueba la versión de PHP y MySQL

PrestaShop es sensible a versiones desactualizadas. Si actualizaste PHP o MySQL recientemente, puede haber incompatibilidad.

### 6.1. Versiones recomendadas para PrestaShop 1.7 y 8.x

  • PHP: 7.4, 8.0 o 8.1 (según la versión de PrestaShop). Evita PHP 8.2 si no está oficialmente soportado.
  • MySQL: 5.7 o MariaDB 10.2 en adelante.

### 6.2. Cómo verificarlo

En tu panel de control (Syspanel, puerto 2106), busca PHP Settings o Server Info. Allí verás la versión activa. Si necesitas cambiarla, muchos hostings permiten seleccionar la versión de PHP por dominio.

[TIP] Si después de cambiar la versión de PHP el error persiste, limpia la caché de PrestaShop: elimina manualmente el contenido de la carpeta /var/cache/ (excepto el archivo .htaccess si existe).


Paso 7: Soluciones avanzadas (para casos persistentes)

Si nada de lo anterior funciona, prueba estas opciones más técnicas.

### 7.1. Forzar la conexión mediante un script de prueba

Crea un archivo llamado test_db.php en la raíz de tu tienda con este contenido:

<?php
$host = 'localhost';
$user = 'tu_usuario';
$pass = 'tu_contraseña';
$db   = 'nombre_base_datos';

$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
    die("Error de conexión: " . $conn->connect_error);
} else {
    echo "Conexión exitosa a la base de datos.";
}
$conn->close();
?>

Accede a tudominio.com/test_db.php. Si ves "Conexión exitosa", el problema está en PrestaShop (caché, módulos, etc.). Si ves un error, el problema es de MySQL o credenciales.

No olvides eliminar este archivo después de la prueba por seguridad.

### 7.2. Restaura desde un backup

Si tienes una copia de seguridad reciente de la base de datos (archivo .sql), puedes restaurarla desde phpMyAdmin:

  1. En phpMyAdmin, selecciona la base de datos.
  2. Ve a la pestaña Importar.
  3. Sube el archivo .sql y ejecuta la importación.
  4. Luego, verifica que los datos de conexión en parameters.php sigan siendo los mismos.

[WARNING] Esto sobrescribirá todos los datos actuales. Asegúrate de que el backup sea de antes de que ocurriera el error.

### 7.3. Reinstala PrestaShop (solo como último recurso)

Si la base de datos está tan dañada que no se puede reparar, a veces es más rápido reinstalar desde cero. Pero perderás todos los datos (productos, pedidos, clientes). Solo hazlo si tienes un backup completo (archivos + base de datos).


Preguntas frecuentes (FAQ)

¿Qué hago si el error "conexión MySQL PrestaShop" aparece después de migrar el hosting?

Revisa el archivo parameters.php y actualiza los datos de conexión (host, nombre de BD, usuario y contraseña) con los de tu nuevo servidor. A menudo el host cambia de localhost a una IP.

¿Puede un módulo de PrestaShop causar un error de base de datos?

Sí, especialmente módulos mal codificados que crean tablas o hacen consultas pesadas. Si el error apareció tras instalar un módulo, desactívalo desde la base de datos (cambiando la columna active a 0 en la tabla ps_module) o elimina sus archivos.

¿Cómo sé si mi base de datos está corrupta?

Ejecuta en phpMyAdmin: CHECK TABLE nombre_tabla; Si devuelve "Table is marked as crashed", está corrupta. Repara con REPAIR TABLE nombre_tabla;.

¿El error "Too many connections" se soluciona solo?

A veces, al cabo de unos minutos, las conexiones se liberan. Pero si es recurrente, debes aumentar el límite o revisar procesos en segundo plano (como crawlers o módulos de sincronización).

¿Puedo usar un plugin o script para reparar la base de datos automáticamente?

Existen herramientas como PrestaShop Database Repair (módulo de pago) o scripts caseros, pero es más seguro usar phpMyAdmin o comandos MySQL. Si no te sientes seguro, pide ayuda a tu hosting.


Conclusión

Los problemas de conexión a base de datos en PrestaShop pueden ser frustrantes, pero siguiendo esta guía paso a paso podrás resolver la mayoría de ellos. Recuerda:

  • Siempre empieza por lo más simple: reinicia MySQL y verifica credenciales.
  • No olvides las copias de seguridad: son tu salvavidas.
  • Si el problema persiste, contacta a tu proveedor de hosting – ellos pueden revisar logs del servidor y ayudarte con configuraciones más profundas.

Con paciencia y estos pasos, tu tienda volverá a estar online en poco tiempo. ¡Mucho éxito con tu ecommerce!

[INFO] Si tu hosting usa Syspanel, recuerda que el acceso al panel es a través del puerto 2106 y allí puedes gestionar bases de datos, reiniciar servicios y verificar versiones de PHP.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel