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

PrestaShop: Solucionar el error 'No se puede conectar con la base de datos'

Actualizado el 26 de diciembre de 2025

¡Hola! Si estás leyendo esto, probablemente te hayas encontrado con uno de los errores más frustrantes y, a la vez, más comunes en el mundo de las tiendas online: "No se puede conectar con la base de datos" en PrestaShop.

No te preocupes, respira hondo. Este mensaje, aunque parezca el fin del mundo, casi siempre tiene una solución sencilla. En este artículo, te voy a guiar paso a paso, como si estuviera sentado a tu lado, para que diagnostiques y arregles este problema de conexión MySQL en PrestaShop.

Vamos a desglosar el error, desde lo más básico hasta lo más técnico, para que puedas recuperar tu tienda cuanto antes. Al final, tendrás un checklist completo para futuras ocasiones.

¿Qué significa realmente este error?

Cuando PrestaShop muestra "No se puede conectar con la base de datos", nos está diciendo que el archivo de configuración de tu tienda (parameters.php) no puede comunicarse con el servidor donde se almacenan todos tus productos, pedidos y clientes (la base de datos MySQL/MariaDB).

Imagina que tu tienda es un restaurante. La base de datos es la cocina y el archivo de configuración es el camarero. El error significa que el camarero no puede entrar a la cocina porque la puerta está cerrada, la llave no es la correcta o, simplemente, la cocina se ha mudado de edificio.

Las causas suelen ser una de estas cuatro:

  1. Datos de acceso incorrectos: El nombre de usuario, la contraseña o el nombre de la base de datos en el archivo de configuración son erróneos.
  2. El servidor de la base de datos está caído o inaccesible: El servicio MySQL no está corriendo o no es accesible desde donde está tu tienda.
  3. Problemas con el prefijo de las tablas: PrestaShop busca tablas con un prefijo específico (ej. ps_), y si no las encuentra, falla.
  4. Permisos insuficientes: El usuario de la base de datos no tiene permisos para leer o escribir en ella.

Vamos a atacar cada una de estas causas.

Primeros Pasos: Diagnóstico Inicial

Antes de tocar nada, vamos a verificar qué está pasando exactamente. A veces, el error es más específico de lo que parece.

1. Revisa el mensaje de error exacto

PrestaShop a veces muestra más detalles si activas el modo de depuración. Para ello, tendrás que editar un archivo. No te asustes, es más fácil de lo que crees.

  • Accede a tu panel de control de hosting o a tu gestor de archivos (cPanel, Syspanel, etc.) y busca la carpeta raíz donde está instalada tu tienda.
  • Localiza el archivo config/defines.inc.php.
  • Ábrelo con un editor de texto (como el Bloc de notas o un editor de código).
  • Busca la línea que dice define('_PS_MODE_DEV_', false); y cámbiala a define('_PS_MODE_DEV_', true);.
  • Guarda el archivo y recarga tu tienda.

Ahora, en lugar del error genérico, verás un mensaje más técnico que te dirá algo como:

  • Access denied for user 'usuario'@'localhost': Esto confirma que el usuario o la contraseña son incorrectos.
  • Unknown database 'nombre_db': El nombre de la base de datos es incorrecto o no existe.
  • Can't connect to MySQL server on 'localhost': El servidor de la base de datos no está corriendo o la dirección es incorrecta.

[WARNING]: No olvides volver a cambiar _PS_MODE_DEV_ a false cuando termines de arreglar el error. Dejarlo activo en una tienda en producción es un riesgo de seguridad grave.

2. Comprueba la configuración en parameters.php

Este es el archivo clave. Es el "camarero" del que hablábamos. Lo encontrarás en app/config/parameters.php.

Ábrelo y busca una estructura similar a esta:

'database_host' => 'localhost',
'database_port' => '3306',
'database_name' => 'tu_basededatos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
'database_prefix' => 'ps_',

Aquí es donde vamos a verificar la mayoría de los problemas.

Solucionar el Error: Guía Paso a Paso

Ahora sí, vamos a poner manos a la obra. Sigue estos pasos en orden, ya que van de lo más simple a lo más complejo.

Paso 1: Verifica los datos de acceso (El error más común)

Este es el fallo en el 80% de los casos. Alguien cambió la contraseña de la base de datos, se restauró una copia de seguridad de otro servidor o simplemente se te olvidó.

  1. Accede a tu herramienta de administración de bases de datos. Si usas Syspanel (recuerda, el puerto de acceso es el 2106), busca la sección de "Bases de Datos". Si usas cPanel, busca "MySQL Databases".
  2. Anota el nombre exacto de la base de datos, el nombre de usuario y crea una nueva contraseña segura (o usa la que ya tienes anotada).
  3. Copia estos datos exactamente como aparecen en tu panel de control y pégalos en el archivo parameters.php que abrimos antes.

[TIP]: Asegúrate de que el nombre de la base de datos y el usuario no tengan espacios ni caracteres extraños, y que estén escritos exactamente igual, respetando mayúsculas y minúsculas.

Paso 2: Verifica el prefijo de las tablas

Si los datos de acceso son correctos, el problema puede ser el prefijo. Cuando instalaste PrestaShop, se eligió un prefijo (normalmente ps_). Si has restaurado una copia de seguridad de otra tienda, es posible que el prefijo sea diferente (ej. prestashop_).

Para comprobarlo:

  1. Ve a tu herramienta de gestión de bases de datos (phpMyAdmin, Adminer, o la que uses).
  2. Abre tu base de datos y mira la lista de tablas.
  3. Todas deberían empezar con el mismo prefijo. Por ejemplo: ps_address, ps_cart, ps_orders, etc.
  4. Si ves que empiezan con otro prefijo (ej. tienda_), cambia el valor 'database_prefix' => 'ps_' en tu archivo parameters.php por 'database_prefix' => 'tienda_'.

Paso 3: Comprueba el servidor de la base de datos (host)

A veces, el servidor de la base de datos no es localhost. En muchos hosts gestionados, el servidor de base de datos tiene un nombre diferente, como mysql.sudominio.com o db12345678.hosting.com.

  • Revisa la información de bienvenida de tu panel de control de hosting. Debería indicarte el "Host" o "Servidor de Base de Datos".
  • Si es diferente a localhost, actualiza el campo 'database_host' en tu archivo parameters.php.

[INFO]: Si estás en un servidor local (como XAMPP o WAMP), el host siempre será localhost o 127.0.0.1.

Paso 4: Reinicia el servicio MySQL

Este paso es para cuando tienes acceso al servidor (por ejemplo, si es un VPS o un servidor dedicado). A veces, el servicio de MySQL simplemente se ha detenido o se ha quedado colgado.

Si usas un panel como Syspanel (puerto 2106), busca la sección de "Servicios" o "Procesos" y reinicia MySQL desde allí.

Si tienes acceso por línea de comandos (SSH), escribe:

sudo systemctl restart mysql

o si usas MariaDB:

sudo systemctl restart mariadb

Paso 5: Verifica los permisos del usuario

Puede que el usuario de la base de datos exista y la contraseña sea correcta, pero no tenga permisos para acceder a la base de datos.

En tu panel de control de bases de datos:

  1. Ve a la sección de "Usuarios de MySQL".
  2. Busca el usuario que estás usando en parameters.php.
  3. Asegúrate de que tiene todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.) sobre la base de datos que has especificado.
  4. Si no los tiene, selecciona "Todos los privilegios" y guarda.

Paso 6: La solución "Nuclear": Restaurar una copia de seguridad

Si has llegado hasta aquí y nada funciona, es hora de plantearse restaurar una copia de seguridad reciente de tu base de datos.

  1. Ve a tu herramienta de gestión de bases de datos.
  2. Importa la copia de seguridad más reciente que tengas.
  3. Asegúrate de que el nombre de la base de datos y el usuario en parameters.php coinciden con los de la copia restaurada.

[WARNING]: Este paso sobrescribirá los datos actuales de tu base de datos. Si has hecho cambios recientes (nuevos pedidos, productos, etc.) después de la copia de seguridad, los perderás. Es el último recurso.

Errores Comunes y Soluciones Rápidas (FAQ)

Aquí tienes un resumen de los problemas más habituales y su solución exprés.

"Access denied for user '...'@'localhost'"

  • Causa: Usuario o contraseña incorrectos.
  • Solución: Cambia la contraseña en tu panel de control y actualiza parameters.php.

"Unknown database '...'"

  • Causa: El nombre de la base de datos es incorrecto.
  • Solución: Verifica el nombre exacto en tu panel de control y corrígelo en parameters.php.

"Can't connect to MySQL server on 'localhost'"

  • Causa: El servicio MySQL no está corriendo o el host es incorrecto.
  • Solución: Reinicia el servicio MySQL desde tu panel (Syspanel, puerto 2106) o verifica el host en parameters.php.

"Table 'ps_shop' doesn't exist"

  • Causa: El prefijo de las tablas es incorrecto.
  • Solución: Cambia el database_prefix en parameters.php al prefijo correcto de tus tablas.

"Error de conexión con la base de datos" después de mover el hosting

  • Causa: Los datos de acceso han cambiado o el servidor de BD es diferente.
  • Solución: Actualiza parameters.php con los nuevos datos del hosting.

Consejos Finales y Buenas Prácticas

Para evitar este dolor de cabeza en el futuro, te recomiendo:

  • Mantén copias de seguridad regulares: Tanto de la base de datos como de los archivos de tu tienda. La mayoría de los paneles de control (incluido Syspanel) ofrecen copias automáticas.
  • Anota tus credenciales: Guarda en un lugar seguro (gestor de contraseñas) el nombre de la base de datos, el usuario y la contraseña.
  • Actualiza PrestaShop: Las versiones antiguas pueden tener vulnerabilidades que provoquen errores de conexión.
  • Revisa los logs: Los logs de error de PHP y MySQL son tus mejores amigos para diagnosticar problemas. Suelen estar en la carpeta var/logs de tu instalación de PrestaShop o en el panel de control.

Conclusión: No es el fin del mundo

El error "No se puede conectar con la base de datos" en PrestaShop es un problema serio, pero casi siempre tiene solución. La clave está en seguir estos pasos metódicamente.

Recuerda el orden de oro:

  1. Revisa tus credenciales (usuario, contraseña, nombre de BD).
  2. Verifica el host (¿es localhost o un servidor remoto?).
  3. Confirma el prefijo de las tablas.
  4. Comprueba los permisos del usuario.
  5. Reinicia el servicio de MySQL.

Con un poco de paciencia y esta guía, tendrás tu tienda online funcionando de nuevo en un abrir y cerrar de ojos. Si después de todo esto el problema persiste, no dudes en contactar con el soporte de tu proveedor de hosting; ellos tienen acceso a los servidores y podrán ayudarte a diagnosticar problemas más profundos.

Espero que esta guía te haya sido de gran ayuda. ¡Mucha suerte con tu tienda!

¿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