Solucionar error de conexión a base de datos en PrestaShop con cPanel
Imagina que llegas a tu tienda online y, en lugar de ver tus productos, aparece una pantalla en blanco o un mensaje como “Error de conexión a la base de datos”. Es una situación frustrante, pero no te preocupes: es uno de los problemas más comunes en PrestaShop y, por lo general, tiene solución rápida si sabes dónde mirar en cPanel.
Este artículo te guiará paso a paso para identificar y solucionar el temido error de conexión a la base de datos. Está pensado para que lo entiendas aunque no seas un experto técnico. Solo necesitas acceso a tu panel de control cPanel y un poco de paciencia.
¿Por qué ocurre este error en PrestaShop?
El error de conexión a la base de datos significa que PrestaShop no puede comunicarse con el lugar donde guarda toda la información de tu tienda: productos, clientes, pedidos, configuraciones, etc. Las causas más frecuentes son:
- Credenciales incorrectas: El archivo de configuración de PrestaShop tiene mal el nombre de la base de datos, el usuario o la contraseña.
- Base de datos corrupta o dañada: Después de una actualización, un plugin defectuoso o un corte de energía, la base de datos puede presentar errores.
- Servidor MySQL caído o sobrecargado: El servicio de bases de datos en tu hosting no está funcionando correctamente.
- Límite de conexiones excedido: Hay demasiadas conexiones simultáneas a la base de datos.
- Cambio de proveedor de hosting o migración: Al mover la tienda, las credenciales no se actualizaron correctamente.
- Archivo settings.inc.php dañado: Este archivo contiene la configuración crítica de la base de datos.
Vamos a ver cómo solucionar cada una de estas situaciones desde cPanel.
Paso 1: Verificar el estado del servidor MySQL
Antes de modificar nada, asegúrate de que el problema no sea general. cPanel te permite ver el estado de los servicios.
- Inicia sesión en tu cPanel (normalmente es
tudominio.com/cpanelotudominio.com:2083). - Busca la sección “Estado del servidor” o “Server Status” (puede variar según el tema de cPanel). A veces está en la pestaña “Avanzado”.
- Busca la línea “MySQL” (o “MariaDB”). Debería aparecer en verde y con la palabra “Running” (ejecutándose).
[INFO] Si ves que el servidor MySQL está detenido, contacta a tu proveedor de hosting inmediatamente. No es un problema que puedas resolver desde tu cuenta, sino que requiere intervención del equipo de soporte del servidor.
Paso 2: Localizar y revisar el archivo de configuración de PrestaShop
PrestaShop guarda los datos de conexión a la base de datos en un archivo llamado settings.inc.php. Este archivo se encuentra en la carpeta config de tu instalación.
- En cPanel, ve a la sección “Administrador de archivos” (File Manager).
- Navega hasta la carpeta donde tienes instalado PrestaShop (normalmente
public_htmlo una subcarpeta como/tienda). - Dentro, abre la carpeta
config. - Busca el archivo
settings.inc.php. Haz clic derecho sobre él y selecciona “Editar” (o “Edit”). Si te pregunta por la codificación, elige UTF-8 sin BOM.
Dentro del archivo verás líneas como estas (al principio):
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'tu_usuario_basededatos');
define('_DB_USER_', 'tu_usuario');
define('_DB_PASSWD_', 'tu_contraseña');
define('_DB_PREFIX_', 'ps_');
[WARNING] Ten mucho cuidado al editar este archivo. Un error de sintaxis (una comilla mal puesta, un punto y coma olvidado) puede romper tu tienda. Si no te sientes seguro, descarga una copia de seguridad del archivo antes de modificarlo.
¿Qué debes comprobar aquí?
- DB_SERVER: Casi siempre debe ser
localhosto127.0.0.1. A menos que tu hosting use un servidor MySQL externo (raro en hosting compartido). - DB_NAME: Debe coincidir exactamente con el nombre de la base de datos que ves en cPanel.
- DB_USER: Debe coincidir con el nombre de usuario de la base de datos.
- DB_PASSWD: Debe ser la contraseña correcta. Las contraseñas suelen tener caracteres especiales (como
$,%,&, etc.). Asegúrate de que no se haya escapado ningún carácter.
[TIP] Si cambiaste la contraseña de la base de datos recientemente desde cPanel, recuerda actualizarla también aquí. Es una de las causas más comunes del error.
Paso 3: Verificar las credenciales desde cPanel (y cómo crearlas si es necesario)
Si sospechas que las credenciales son incorrectas, lo mejor es comprobarlas directamente desde cPanel.
- En cPanel, busca la sección “Bases de Datos MySQL” (MySQL Databases).
- Verás una lista de las bases de datos existentes. Anota el nombre exacto.
- Más abajo, verás los usuarios existentes. Asegúrate de que el usuario que aparece en
settings.inc.phpesté en esa lista. - Paso crítico: Para que un usuario pueda acceder a una base de datos, debe estar asignado a ella. En la sección “Añadir usuario a la base de datos”, selecciona el usuario y la base de datos y haz clic en “Añadir”. Luego, asígnale TODOS LOS PRIVILEGIOS (marca la casilla “TODOS” o selecciona todos los permisos).
[INFO] Si no recuerdas la contraseña de un usuario, puedes cambiarla desde la misma sección “Bases de Datos MySQL”. Haz clic en “Cambiar contraseña” al lado del nombre de usuario. Luego, actualiza esa misma contraseña en el archivo settings.inc.php.
Paso 4: Reparar la base de datos (si está corrupta)
A veces la base de datos se daña parcialmente. cPanel incluye una herramienta llamada phpMyAdmin que permite repararla.
- En cPanel, busca el ícono “phpMyAdmin”.
- En la columna de la izquierda, selecciona la base de datos de tu PrestaShop.
- Verás una lista de todas las tablas (como
ps_product,ps_customer, etc.). Marca la casilla de selección en la parte inferior de la lista para seleccionarlas todas. - En el menú desplegable que aparece (justo debajo de la lista de tablas), selecciona “Reparar tabla” (o “Repair table”).
- phpMyAdmin ejecutará un proceso de reparación. Al finalizar, te mostrará un mensaje de éxito o de error.
[TIP] Si la reparación falla, puedes intentar “Optimizar tabla” primero. Si el error persiste, restaura una copia de seguridad reciente de la base de datos (desde la misma sección de cPanel -> “Copias de seguridad”).
Paso 5: Verificar el límite de conexiones y reiniciar servicios
Un error común en tiendas con mucho tráfico es superar el límite de conexiones simultáneas a la base de datos. Aunque no puedes cambiar ese límite desde cPanel (lo hace el proveedor), puedes:
- Reiniciar el servicio MySQL desde cPanel. Busca la sección “Restart Services” (puede estar en “Avanzado” o “Server”). Haz clic en “Restart MySQL”.
[WARNING] Reiniciar MySQL cerrará todas las conexiones activas durante unos segundos. Tu tienda estará caída por un instante. Hazlo en horas de bajo tráfico.
- Revisar plugins o módulos: Algunos módulos de PrestaShop abren muchas conexiones. Si instalaste uno nuevo recientemente, desactívalo temporalmente renombrando su carpeta en
/modules(por ejemplo, demicodigoamicodigo_off).
Paso 6: Solucionar errores después de una migración o cambio de hosting
Si acabas de mover tu tienda a un nuevo servidor, es muy probable que el error se deba a que las credenciales en settings.inc.php sigan apuntando a la base de datos anterior.
- Asegúrate de haber creado la base de datos y el usuario en el nuevo cPanel.
- Importa tus datos a la nueva base de datos (desde phpMyAdmin o desde la opción “Copias de seguridad” de cPanel).
- Edita el archivo
settings.inc.phpcomo se explicó en el Paso 2, cambiando_DB_SERVER_,_DB_NAME_,_DB_USER_y_DB_PASSWD_por los datos de tu nuevo hosting.
[INFO] Recuerda que si tu nuevo hosting usa un servidor de bases de datos remoto (no localhost), el valor de _DB_SERVER_ te lo proporcionará tu proveedor. En la mayoría de los casos, en hosting compartido, sigue siendo localhost.
FAQ: Preguntas frecuentes sobre el error de conexión a base de datos en PrestaShop
¿Qué hago si después de seguir todos los pasos el error persiste?
Puede ser un problema de permisos de archivos o de caché. Prueba a:
- Limpiar la caché de PrestaShop: Desde el back office, ve a Parámetros avanzados > Rendimiento y haz clic en “Limpiar la caché”. Si no puedes acceder al back office, elimina manualmente el contenido de la carpeta
/var/cache(pero no la carpeta en sí, solo los archivos dentro). - Verificar permisos de archivos: La carpeta
configy el archivosettings.inc.phpdeben tener permisos 644 (o 755 para la carpeta). Puedes cambiarlos desde el Administrador de archivos de cPanel.
¿Por qué veo el mensaje “Fallo al conectar con la base de datos: Access denied for user”?
Este mensaje indica que el usuario y la contraseña son incorrectos, o que el usuario no tiene permisos sobre la base de datos. Vuelve al Paso 3 y asegúrate de que el usuario esté asignado a la base de datos con todos los privilegios.
¿El error puede deberse a un plugin de seguridad?
Sí. Algunos plugins de seguridad o firewalls (como Wordfence, si usas WordPress, o módulos de seguridad en PrestaShop) pueden bloquear las conexiones a la base de datos. Prueba a desactivarlos temporalmente renombrando sus carpetas en /modules.
¿Puedo usar Syspanel (HestiaCP) en lugar de cPanel?
Si tu servidor usa Syspanel (HestiaCP), el proceso es similar, pero el acceso es diferente. Para acceder al panel, usa la URL tudominio.com:2106. Dentro, busca la sección “Bases de datos” para gestionar usuarios y contraseñas. El resto de los pasos (editar settings.inc.php, reparar con phpMyAdmin) son idénticos.
¿Y si el error aparece después de una actualización de PrestaShop?
Las actualizaciones pueden cambiar la estructura de la base de datos. Si durante la actualización algo falló, es posible que la base de datos quede inconsistente. Prueba a reparar las tablas (Paso 4) o, si tienes una copia de seguridad anterior a la actualización, restaura la base de datos y vuelve a intentar la actualización.
Resumen y recomendaciones finales
El error de conexión a la base de datos en PrestaShop suele resolverse verificando tres puntos clave desde cPanel:
- Credenciales correctas en el archivo
config/settings.inc.php. - Usuario asignado a la base de datos con todos los privilegios.
- Base de datos no corrupta (reparación con phpMyAdmin).
Si después de todo esto el problema continúa, no dudes en contactar al soporte técnico de tu hosting. Ellos pueden revisar los logs del servidor y detectar problemas más profundos, como un bloqueo por IP o un fallo de hardware.
[TIP] Para evitar estos problemas en el futuro, te recomiendo:
- Realizar copias de seguridad automáticas de tu base de datos (cPanel tiene una opción para programarlas).
- Actualizar PrestaShop y sus módulos de forma regular, pero siempre probando en un entorno de desarrollo primero.
- Usar contraseñas fuertes y no compartir las credenciales de la base de datos.
Esperamos que este artículo te haya sido de ayuda. ¡Tu tienda online volverá a funcionar en poco tiempo!
