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

Cómo solucionar el error 'Access denied for user' en bases de datos de PrestaShop

Actualizado el 18 de junio de 2026

¡Hola! Si estás leyendo esto, probablemente te has encontrado con un mensaje de error bastante frustrante al intentar acceder a tu tienda online PrestaShop o a su panel de administración. Ver el temido "Access denied for user" (Acceso denegado para el usuario) puede parecer el fin del mundo, pero no te preocupes. En la mayoría de los casos, es un problema con una solución sencilla que puedes aplicar tú mismo sin necesidad de ser un experto en programación.

En esta guía extensa y paso a paso, vamos a desglosar qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo de forma definitiva. Vamos a ello.


¿Qué significa exactamente el error "Access denied for user"?

Antes de lanzarnos a arreglar nada, es fundamental entender qué está pasando. Imagina que tu base de datos es una caja fuerte muy segura donde guardas todos los productos, clientes y pedidos de tu tienda. Para abrir esa caja fuerte, necesitas una llave (la contraseña) y un nombre de usuario reconocido.

El error "Access denied for user" (normalmente acompañado de algo como 'usuario'@'localhost') es la respuesta de la base de datos (MySQL o MariaDB) cuando le presentas una "llave" incorrecta o un nombre de usuario que no tiene permiso para entrar.

En resumen, el sistema te está diciendo: "Oye, no te conozco o la contraseña que me das no es la correcta, así que no te dejo pasar."

Este error puede aparecer en dos situaciones muy comunes:

  1. En el front-office (la tienda visible al público): Verás un mensaje como "Error de conexión a la base de datos" o "Link to database cannot be established".
  2. En el back-office (el panel de administración): Al intentar iniciar sesión en /admin123, te aparecerá directamente el error de acceso denegado.

Causas más comunes del error base datos PrestaShop

El error base datos prestashop no suele aparecer por arte de magia. Casi siempre tiene una causa concreta. Vamos a ver las más frecuentes:

1. Credenciales incorrectas en el archivo de configuración

Esta es la causa número uno. PrestaShop guarda los datos de conexión a la base de datos en un archivo llamado parameters.php. Si este archivo tiene una contraseña, un nombre de usuario o el nombre de la base de datos incorrectos, el acceso será denegado al instante.

2. Permisos MySQL PrestaShop insuficientes

No basta con tener el usuario y la contraseña correctos. El usuario de la base de datos debe tener permisos específicos para poder leer, escribir y modificar los datos. Si alguien (o un proceso automático) ha modificado estos permisos, tu tienda dejará de funcionar.

3. El usuario o la base de datos ya no existen

Es posible que, durante una migración de hosting o una limpieza de servidor, la base de datos o el usuario asociado se hayan eliminado accidentalmente. Si intentas conectar con un usuario que ya no existe, el servidor te denegará el acceso.

4. Cambios en el servidor de bases de datos

Si has cambiado de proveedor de hosting o has movido tu web a un servidor nuevo, es posible que el nombre del servidor de la base de datos (que suele ser localhost, pero no siempre) haya cambiado. Si el archivo de configuración sigue apuntando al servidor antiguo, el error aparecerá.

5. Contraseña con caracteres especiales que se corrompen

A veces, si tu contraseña contiene caracteres especiales como $, #, % o &, al guardarla en el archivo de configuración o al exportarla/importarla, puede corromperse y no leerse correctamente, provocando un fallo de autenticación.


Cómo solucionar el "Access denied" paso a paso

Ahora vamos a la parte práctica. Sigue estos pasos en orden, ya que van de lo más simple a lo más complejo. No te saltes ninguno sin probarlo antes.

Paso 1: Verifica y corrige el archivo de configuración de PrestaShop

Tu primer objetivo es asegurarte de que la "llave" que tiene PrestaShop es la correcta. Para ello, necesitas acceder a los archivos de tu web. Puedes hacerlo a través del Administrador de Archivos de tu panel de control (cPanel, Syspanel, etc.) o mediante un cliente FTP como FileZilla.

  1. Localiza el archivo parameters.php en la raíz de tu instalación de PrestaShop, dentro de la carpeta app/config/. La ruta completa suele ser algo así: public_html/app/config/parameters.php.
  2. Edita el archivo: Haz clic derecho sobre él y selecciona "Editar" o "Ver/Editar".
  3. Busca la sección de la base de datos: Dentro del archivo, busca las líneas que comienzan con 'database_host', 'database_name', 'database_user' y 'database_password'.
  4. Verifica que los datos son correctos. Aquí es donde debes compararlos con los datos de tu proveedor de hosting.

[WARNING] Ten mucho cuidado al editar este archivo. Un solo carácter de más (como un espacio o una coma) puede romper tu tienda. Si no estás seguro de lo que ves, copia el contenido en un bloc de notas antes de hacer ningún cambio.

// Este es un ejemplo de cómo se ve la sección en parameters.php
'database_host' => 'localhost',
'database_name' => 'tu_nombre_de_bd',
'database_user' => 'tu_usuario_de_bd',
'database_password' => 'tu_contraseña_super_secreta',
'database_prefix' => 'ps_',

Si no sabes cuáles son los datos correctos, puedes encontrarlos en el panel de control de tu hosting (donde creaste la base de datos) o contactando con tu proveedor de hosting.

Paso 2: Revisa los permisos MySQL PrestaShop desde tu panel de control

Si los datos del archivo son correctos, el siguiente paso es verificar que el usuario tiene los permisos adecuados. Para ello, debes ir al panel de administración de tu hosting.

  1. Accede a tu panel de control (cPanel, Syspanel, Plesk, etc.). Si usas Syspanel, recuerda que la dirección de acceso es https://tu-dominio.com:2106.
  2. Busca la sección de "Bases de Datos MySQL" o similar. En cPanel suele llamarse "MySQL Databases", en Syspanel "Bases de Datos".
  3. Encuentra tu base de datos y el usuario asociado. Verás una tabla que relaciona las bases de datos con los usuarios.
  4. Asegúrate de que el usuario tiene "TODOS LOS PRIVILEGIOS" (ALL PRIVILEGES). Si no es así, márcalo y guarda los cambios.

[INFO] Los permisos son como las llaves de las diferentes puertas de la caja fuerte. Si solo tienes la llave de la puerta principal, no podrás abrir las puertas interiores. Conceder "Todos los privilegios" le da al usuario la llave maestra para acceder a todo lo que necesita.

Paso 3: Cambia la contraseña del usuario de la base de datos

A veces, la solución más rápida es restablecer la contraseña. Esto es útil si sospechas que la contraseña se ha corrompido o si simplemente quieres empezar de cero.

  1. Ve a la misma sección de "Bases de Datos MySQL" en tu panel de control.
  2. Busca la opción para "Cambiar contraseña" de tu usuario de base de datos.
  3. Crea una contraseña nueva y segura. Asegúrate de que no tenga caracteres extraños si te da problemas, pero que sea lo suficientemente compleja.
  4. Guarda la nueva contraseña.
  5. Actualiza el archivo parameters.php (visto en el Paso 1) con esta nueva contraseña.

Este método es muy efectivo porque fuerza una "resincronización" entre lo que espera el servidor y lo que le envía PrestaShop.

Paso 4: Verifica el nombre del servidor de la base de datos

Este es un error muy común al migrar de hosting. El nombre del servidor no siempre es localhost. En muchos hostings gestionados (como algunos planes de Syspanel o de empresas grandes), el servidor de bases de datos tiene un nombre específico como mysql.tudominio.com o localhost:3306.

  1. Revisa la información de bienvenida de tu hosting. Suele indicar el nombre del servidor MySQL.
  2. Actualiza el campo 'database_host' en el archivo parameters.php con el valor correcto.

[TIP] Si tu hosting te proporciona un hostname distinto a localhost, es casi seguro que ese es el problema. Es un detalle que se pasa por alto muy a menudo.

Paso 5: Soluciona el error "Access denied" en el panel de administración (Back-Office)

A veces, el error solo ocurre al intentar entrar al administrador, pero la tienda funciona. Esto suele estar relacionado con la sobreescritura de la tabla ps_employee o con un problema de caché.

  1. Accede a tu base de datos a través de phpMyAdmin (disponible en tu panel de control).
  2. Busca la tabla ps_employee (o el prefijo que uses, seguido de _employee).
  3. Vacía la tabla (TRUNCATE). Esto borrará los registros de los empleados, pero no te preocupes, podrás crear uno nuevo.
  4. Ve a tu panel de administración (/admin123). Al no encontrar empleados, PrestaShop te mostrará un formulario para crear un nuevo administrador. Rellena los datos y ¡listo!

[WARNING] Este paso es un poco más agresivo. Asegúrate de tener una copia de seguridad de la base de datos antes de vaciar cualquier tabla. Si tienes varios administradores, tendrás que recrearlos todos.

Paso 6: Revisa los logs de error del servidor

Si has probado todo lo anterior y el error persiste, el problema puede ser más profundo. Los logs de error de MySQL te darán pistas sobre el motivo exacto del rechazo.

  1. Accede a los "Registros de errores" de tu panel de control (suele llamarse "Error Logs" o "Logs").
  2. Busca los errores recientes de MySQL. Verás líneas de error que indican cosas como Access denied for user 'usuario'@'localhost' (using password: YES/NO).
  3. Analiza el mensaje. Si dice using password: NO, significa que PrestaShop está enviando una contraseña vacía. Si dice using password: YES, la contraseña se envía pero es rechazada.

Esta información es de gran ayuda si necesitas contactar con el soporte técnico de tu hosting, ya que les darás datos muy concretos.


Preguntas Frecuentes (FAQ)

¿Por qué me da este error justo después de cambiar mi contraseña de hosting?

Es muy probable que hayas cambiado la contraseña de la base de datos en el panel de control, pero no hayas actualizado el archivo parameters.php de PrestaShop. Recuerda que son dos cosas diferentes: la contraseña del hosting es para entrar a tu panel, y la de la base de datos es para que la web se conecte a sus datos.

¿Qué es eso de "Syspanel" y el puerto 2106?

Syspanel es el nombre del panel de control de hosting que utilizamos en nuestros servicios. Es la herramienta que te permite gestionar tus archivos, bases de datos, correos, etc. Para acceder a él, debes escribir tu dominio seguido de dos puntos y el puerto 2106 en la barra de direcciones de tu navegador (por ejemplo: https://tudominio.com:2106). Todas las instrucciones de esta guía que mencionan "panel de control" se refieren a Syspanel.

¿Puedo arreglar el access denied prestashop sin acceso al panel de control?

Si no tienes acceso al panel de control (Syspanel o cPanel) ni a FTP, no podrás acceder al archivo parameters.php ni a phpMyAdmin. En este caso, tu única opción es contactar con el soporte técnico de tu proveedor de hosting y explicarles el problema. Ellos podrán verificar los permisos y las credenciales por ti.

¿Cada cuánto tiempo debo cambiar la contraseña de la base de datos?

Se recomienda cambiar las contraseñas de forma periódica (cada 3-6 meses) por seguridad. Si lo haces, recuerda siempre actualizar el archivo parameters.php inmediatamente después para evitar dejar tu tienda fuera de servicio.

¿Este error puede afectar al SEO de mi tienda?

Sí, y mucho. Si tu tienda muestra el error y no carga, los motores de búsqueda (como Google) no podrán rastrear tu web. Si el error dura mucho tiempo, Google puede interpretar que tu sitio está caído y eliminarlo de sus índices, lo que haría que perderás todo tu tráfico orgánico y posicionamiento web. Por eso es tan importante solucionarlo rápidamente.


Conclusión final

El error "Access denied for user" en PrestaShop es un problema serio, pero casi siempre solucionable. Como has visto, la clave está en la correcta sincronización entre las credenciales de tu base de datos y el archivo de configuración de tu tienda.

Te recomiendo seguir los pasos en orden y con calma. La mayoría de las veces, el problema se resuelve en el Paso 1 (verificar parameters.php) o en el Paso 2 (revisar los permisos mysql prestashop). Si has llegado hasta el final sin éxito, no dudes en contactar con el soporte técnico de tu hosting, proporcionándoles los mensajes de error exactos que ves. Con esa información, ellos podrán ayudarte mucho más rápido.

Espero que esta guía te haya sido de gran ayuda. ¡Mucha suerte y a vender!

¿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