Cómo cambiar la contraseña de administrador de PrestaShop por MySQL
¿Por qué necesitas cambiar la contraseña de administrador de PrestaShop por MySQL?
Perder el acceso a tu panel de administración de PrestaShop es más común de lo que piensas. Puede que hayas olvidado tu contraseña, que un colaborador se haya ido de la empresa sin dejar el dato, o que simplemente quieras reforzar la seguridad de tu tienda online. Cuando el método de recuperación por correo electrónico falla o no tienes acceso al buzón registrado, la solución más eficaz y directa es cambiar la contraseña admin PrestaShop mediante una consulta SQL en tu base de datos.
Este proceso es seguro si sigues los pasos al pie de la letra. No necesitas ser un experto en programación, solo tener acceso a tu panel de control de hosting (como cPanel, Syspanel o similar) y a phpMyAdmin PrestaShop para ejecutar la consulta. Te guiaré paso a paso, con calma y detalle, para que puedas recuperar el control de tu tienda en pocos minutos.
Antes de empezar: prepara tu entorno de trabajo
Requisitos indispensables
Para llevar a cabo este procedimiento necesitarás lo siguiente:
- Acceso al panel de control de tu hosting (donde gestionas los archivos y bases de datos). Si usas Syspanel, recuerda que el acceso se realiza por el puerto 2106.
- Credenciales de la base de datos (nombre de la base de datos, usuario y contraseña). Normalmente las encuentras en el archivo
parameters.phpdentro de la carpetaapp/configde tu instalación de PrestaShop. - Acceso a phpMyAdmin, que es la herramienta web que nos permitirá ejecutar la consulta SQL. Está disponible en casi todos los paneles de hosting.
Haz una copia de seguridad (¡IMPORTANTE!)
[WARNING] Antes de modificar cualquier cosa en tu base de datos, es obligatorio realizar una copia de seguridad completa. Un error en una consulta SQL puede dejar tu tienda inaccesible. Ve a tu panel de control, busca la sección de "Bases de datos" y exporta tu base de datos a un archivo .sql. Guárdalo en un lugar seguro. Si algo sale mal, podrás restaurarlo.
Método 1: Usando la función MD5 de MySQL (El método clásico)
Este es el método más fiable y el que se ha utilizado durante años. PrestaShop, en versiones anteriores a la 1.7, almacenaba las contraseñas como hash MD5. A partir de la versión 1.7, el sistema es más complejo (usa un algoritmo de hash con sal), pero este método sigue funcionando para forzar el cambio, ya que la consulta actualiza la contraseña directamente en la tabla de empleados.
Paso 1: Accede a phpMyAdmin
- Entra a tu panel de control de hosting.
- Busca el icono de phpMyAdmin (generalmente en la sección de "Bases de Datos" o "MySQL").
- Haz clic y se abrirá una nueva pestaña con la herramienta.
Paso 2: Selecciona tu base de datos
En el panel izquierdo de phpMyAdmin, verás una lista de todas tus bases de datos. Haz clic en el nombre de la base de datos que corresponde a tu tienda PrestaShop. El nombre suele incluir un prefijo como tienda_ o ps_.
Paso 3: Abre la tabla de empleados
Una vez dentro de tu base de datos, verás una lista de tablas. Busca la tabla que se llama ps_employee (el prefijo ps_ puede variar si alguien lo cambió durante la instalación). Haz clic en ella.
Paso 4: Busca tu usuario administrador
En la tabla ps_employee, verás una lista de todos los usuarios que tienen acceso al panel de administración. Busca la fila correspondiente a tu usuario (normalmente el ID 1 es el superadministrador). Para asegurarte, puedes hacer clic en "Editar" (el icono del lápiz) en la fila de tu usuario y verificar que el campo "email" coincide con el tuyo.
Paso 5: Ejecuta la consulta SQL para cambiar la contraseña
Ahora viene la parte clave. Puedes hacerlo de dos maneras:
Opción A (Recomendada): Editar el campo directamente
- Con la fila de tu usuario en modo "Editar", busca la columna llamada
passwd. - En el campo de texto, borra lo que haya y escribe la nueva contraseña que deseas usar.
- En el desplegable de la derecha (que probablemente dice "VARCHAR" o "texto"), selecciona
MD5. Esto le dice a MySQL que aplique la función MD5 a tu texto antes de guardarlo. - Haz clic en "Continuar" o "Guardar" en la parte inferior de la página.
Opción B: Usar la pestaña SQL
- Si prefieres usar SQL directo, ve a la pestaña "SQL" en la parte superior de phpMyAdmin.
- Copia y pega la siguiente consulta, reemplazando
tu_nueva_contrasenapor la contraseña que quieras ytu_email@ejemplo.compor tu correo electrónico de administrador:
UPDATE ps_employee SET passwd = MD5('tu_nueva_contrasena') WHERE email = 'tu_email@ejemplo.com';
- Haz clic en el botón "Continuar" o en el icono del rayo para ejecutar la consulta.
- Verás un mensaje de éxito que indica que se ha modificado una fila.
Paso 6: Limpia la caché
[TIP] A veces PrestaShop guarda una caché de las sesiones. Para asegurarte de que el cambio surta efecto, borra la carpeta var/cache (en PrestaShop 1.7) o cache (en versiones anteriores) desde el administrador de archivos de tu hosting. Elimina su contenido, pero no la carpeta en sí.
Paso 7: Inicia sesión
Ya puedes ir a tu panel de administración (www.tutienda.com/admin) e iniciar sesión con tu correo electrónico y la nueva contraseña que acabas de configurar.
Método 2: Para PrestaShop 1.7 y versiones superiores (El método moderno)
PrestaShop 1.7 y 8.x utilizan un sistema de cifrado más robusto que hace que el método MD5 simple no funcione directamente para iniciar sesión. Si has probado el método anterior y no te funciona, necesitas usar una consulta SQL que genera un hash compatible con las nuevas versiones.
¿Cómo funciona el nuevo sistema?
En lugar de MD5, PrestaShop 1.7 usa un algoritmo que combina la contraseña con una "sal" (un valor aleatorio único) y la codifica. Para que el sistema la acepte, necesitamos generar el hash correcto. Podemos hacerlo directamente con una función de MySQL.
Paso 1: Accede a la base de datos y a la tabla ps_employee
Sigue los pasos 1, 2 y 3 del método anterior para llegar a la tabla ps_employee.
Paso 2: Ve a la pestaña SQL
Haz clic en la pestaña "SQL" en la parte superior de phpMyAdmin.
Paso 3: Ejecuta la consulta con la nueva función
Aquí tienes la consulta que necesitas ejecutar. Es un poco más compleja, pero no te preocupes, solo debes copiarla y reemplazar los valores entre comillas simples.
UPDATE ps_employee SET passwd = CONCAT('$2y$10$', SHA1(CONCAT('tu_sal', 'tu_nueva_contrasena'))) WHERE email = 'tu_email@ejemplo.com';
[WARNING] En esta consulta, debes reemplazar tu_sal por un texto aleatorio cualquiera (por ejemplo, mi_sal_secreta_2024). Este texto no se guarda en la base de datos, así que no es crítico, pero debe ser el mismo que usaremos en el siguiente paso para generar el hash. La parte importante es que el hash final generado por MySQL debe ser compatible.
Paso 4: Genera el hash final con la sal
Ahora, necesitamos el hash final que se guardará en la base de datos. Ejecuta esta segunda consulta para obtener el valor:
SELECT CONCAT('$2y$10$', SHA1(CONCAT('mi_sal_secreta_2024', 'tu_nueva_contrasena'))) AS nuevo_hash;
Esto te devolverá una cadena de texto larga. Cópiala.
Paso 5: Actualiza el campo passwd con el hash generado
Ahora, en el campo passwd de tu usuario, pega el hash que acabas de copiar. Puedes hacerlo directamente desde el modo "Editar" de la fila, o con una consulta SQL como esta:
UPDATE ps_employee SET passwd = 'aqui_va_el_hash_completo_generado' WHERE email = 'tu_email@ejemplo.com';
Paso 6: Borra la caché e inicia sesión
Al igual que en el método anterior, borra el contenido de la carpeta var/cache o cache y luego intenta iniciar sesión con tu nueva contraseña.
[TIP] Este método es un poco más tedioso, pero es el que garantiza el éxito en las versiones modernas de PrestaShop. Si no te sientes cómodo con las consultas SQL, también puedes usar un módulo de recuperación de contraseña desde el back-office, pero si no puedes entrar, esta es la vía.
Preguntas frecuentes (FAQ) sobre el reset password PrestaShop
¿Qué hago si no recuerdo el nombre de mi base de datos?
El nombre de la base de datos suele estar en el archivo app/config/parameters.php de tu instalación. Búscalo a través del administrador de archivos de tu hosting. Dentro verás líneas como 'database_name' => 'tu_basededatos'.
¿Puedo usar este método si mi hosting usa Syspanel?
Sí, el proceso es exactamente el mismo. Solo debes tener en cuenta que para acceder a tu panel de control Syspanel, debes usar el puerto 2106 en la URL (por ejemplo, https://tu-servidor:2106). Una vez dentro, busca la sección de bases de datos y phpMyAdmin.
¿Qué pasa si mi tabla no se llama ps_employee?
El prefijo de las tablas puede variar. Si no encuentras ps_employee, busca tablas que terminen en _employee o echa un vistazo a la lista de tablas para identificar cuál es la que contiene los datos de los administradores.
¿Es seguro cambiar la contraseña por MySQL?
Sí, es seguro si sigues los pasos correctamente y has hecho una copia de seguridad. Es un procedimiento estándar de recuperación. Solo asegúrate de no modificar otros campos de la tabla.
¿Por qué no puedo iniciar sesión después de usar el método MD5?
Como mencionamos, si tu PrestaShop es 1.7 o superior, el sistema de cifrado es diferente. Prueba con el Método 2, que está diseñado para estas versiones. También es posible que el problema sea la caché; asegúrate de borrarla completamente.
¿Puedo cambiar la contraseña de otro empleado con este método?
Sí, solo debes ejecutar la consulta SQL con el correo electrónico del empleado en cuestión. Esto te permite restablecer el acceso de cualquier usuario administrador.
Consejos finales para mantener tu tienda segura
Una vez que hayas recuperado el acceso, te recomiendo tomar algunas medidas de seguridad:
- Usa una contraseña fuerte: Combina mayúsculas, minúsculas, números y símbolos. Evita fechas de nacimiento o nombres comunes.
- Habilita la autenticación en dos pasos (2FA): PrestaShop ofrece esta opción en el back-office. Actívala para añadir una capa extra de protección.
- Cambia tu contraseña periódicamente: No esperes a tener un problema para hacerlo.
- Mantén tu PrestaShop actualizado: Las actualizaciones corrigen vulnerabilidades de seguridad.
Cambiar la contraseña de administrador de PrestaShop por MySQL es una habilidad esencial para cualquier propietario de una tienda online. Con esta guía detallada, esperamos haberte dado la confianza y el conocimiento para hacerlo tú mismo sin problemas. Recuerda siempre trabajar con calma, hacer copias de seguridad y, ante cualquier duda, consultar con tu proveedor de hosting.
¡Esperamos que hayas recuperado el acceso a tu tienda! Si tienes más dudas, no dudes en contactar con nuestro equipo de soporte. Estamos aquí para ayudarte.
