Reprendre un site PrestaShop : accès admin et base de données
Guide complet pour reprendre un site PrestaShop existant : résoudre les erreurs de connexion BDD, réinitialiser le mot de passe admin via phpMyAdmin et sécuriser l'accès.
En bref : Pour reprendre un site PrestaShop, corrigez d'abord la configuration de la base de données dans settings.inc.php (ou parameters.php), puis réinitialisez le mot de passe admin via phpMyAdmin en utilisant le bon mécanisme de hachage selon votre version (MD5 + cookie_key pour PS 1.6, bcrypt pour PS 1.7/8.x). Sécurisez ensuite tous les accès.
Introduction
Reprendre un site PrestaShop existant — que ce soit après un rachat, un changement de prestataire ou une récupération de projet — est une opération courante mais semée d'embûches. Les deux problèmes les plus fréquents sont l'impossibilité de se connecter à la base de données et la perte des identifiants d'accès au back-office.
Ce guide détaille les étapes méthodiques pour reprendre le contrôle complet d'une boutique PrestaShop, de la configuration de la base de données à la réinitialisation sécurisée du mot de passe administrateur.
Étape 1 : Récupérer les accès hébergement
Avant toute intervention technique, rassemblez les informations essentielles fournies par votre hébergeur :
- **Accès FTP/SFTP** : hôte, identifiant, mot de passe, port (généralement 21 ou 22)
- **Accès phpMyAdmin** : URL de connexion, identifiant et mot de passe de la base de données
- **Accès SSH** (si disponible) : indispensable pour les interventions avancées
Chez OVH par exemple, ces informations sont envoyées par e-mail lors de la souscription de l'hébergement. Consultez votre espace client ou recherchez l'e-mail de bienvenue contenant ces identifiants.
Conseil : Sur un hébergement mutualisé OVH, l'accès phpMyAdmin se fait depuis l'espace client > Hébergements > Bases de données > Accéder à phpMyAdmin.
Étape 2 : Résoudre l'erreur de connexion à la base de données
Diagnostic de l'erreur SQLSTATE[28000] [1045]
L'erreur suivante est extrêmement courante lors d'une reprise de site :
Link to database cannot be established: SQLSTATE[28000] [1045]
Access denied for user 'utilisateur'@'adresse_ip' (using password: YES)
Cette erreur signifie que PrestaShop ne parvient pas à s'authentifier auprès du serveur MySQL/MariaDB. Les causes sont presque toujours liées à une incohérence entre la configuration du site et les paramètres réels de la base de données.
Corriger la configuration dans settings.inc.php
Le fichier de configuration de la base de données se trouve à la racine de votre installation PrestaShop :
PrestaShop 1.6 : /config/settings.inc.php
// Paramètres à vérifier dans settings.inc.php (PS 1.6)
define('_DB_SERVER_', 'localhost'); // ou l'IP/hôte fourni par l'hébergeur
define('_DB_NAME_', 'nom_base'); // nom exact de la base de données
define('_DB_USER_', 'utilisateur_bdd'); // utilisateur MySQL
define('_DB_PASSWD_', 'mot_de_passe'); // mot de passe MySQL
define('_DB_PREFIX_', 'ps_'); // préfixe des tables
PrestaShop 1.7 et 8.x : /app/config/parameters.php
// Paramètres à vérifier dans parameters.php (PS 1.7 / 8.x)
return array(
'parameters' => array(
'database_host' => '127.0.0.1',
'database_port' => '',
'database_name' => 'nom_base',
'database_user' => 'utilisateur_bdd',
'database_password' => 'mot_de_passe',
'database_prefix' => 'ps_',
'database_engine' => 'InnoDB',
),
);
Causes fréquentes et solutions
Important : Après un transfert de site, l'adresse du serveur de base de données change presque systématiquement. C'est la première chose à vérifier.
Étape 3 : Réinitialiser le mot de passe administrateur
Une fois l'accès à la base de données rétabli, il faut souvent réinitialiser le mot de passe du compte administrateur, surtout si l'ancien prestataire ne vous l'a pas transmis.
Comprendre le mécanisme de hachage PrestaShop
PrestaShop ne stocke jamais les mots de passe en clair. Le mécanisme varie selon les versions :
- **PrestaShop 1.6** : hachage MD5 avec le `cookie_key` comme sel (*salt*)
- **PrestaShop 1.7+** : utilise `password_hash()` avec l'algorithme bcrypt (plus sécurisé)
- **PrestaShop 8.x** : même mécanisme bcrypt, via le composant Symfony Security
Méthode pour PrestaShop 1.6
Dans PrestaShop 1.6, le mot de passe est stocké sous forme de hash MD5 combiné avec la cookie_key du site.
1. Récupérer la cookie_key
Ouvrez le fichier /config/settings.inc.php et repérez la ligne :
define('_COOKIE_KEY_', 'zbL6STglY83jrhtqBnvD1s0M0gUkxce4MkCkdRuAP89keW39wxVQhgiedwYRbDcd');
2. Générer le hash MD5
Le hash à insérer en base est le MD5 de la concaténation cookie_key + mot_de_passe_souhaité.
Par exemple, pour le mot de passe MonNouveauPass2024 :
# En ligne de commande (Linux/Mac)
echo -n "zbL6STglY83jrhtqBnvD1s0M0gUkxce4MkCkdRuAP89keW39wxVQhgiedwYRbDcdMonNouveauPass2024" | md5sum
Ou via PHP :
<?php
$cookie_key = 'zbL6STglY83jrhtqBnvD1s0M0gUkxce4MkCkdRuAP89keW39wxVQhgiedwYRbDcd';
$nouveau_mdp = 'MonNouveauPass2024';
echo md5($cookie_key . $nouveau_mdp);
// Résultat : un hash de 32 caractères hexadécimaux
3. Mettre à jour en base de données
Dans phpMyAdmin, exécutez la requête suivante :
UPDATE ps_employee
SET passwd = 'votre_hash_md5_ici',
email = 'votre-email@domaine.com'
WHERE id_employee = 1;
Note : Adaptez le préfixe
ps_si votre installation utilise un préfixe personnalisé.
Méthode pour PrestaShop 1.7 et 8.x
À partir de PrestaShop 1.7, le processus est plus simple grâce à l'utilisation de bcrypt :
-- Méthode directe via SQL (PS 1.7 / 8.x)
UPDATE ps_employee
SET passwd = '$2y$10$' || '... hash bcrypt ...',
email = 'votre-email@domaine.com'
WHERE id_employee = 1;
La méthode la plus fiable est d'utiliser un petit script PHP temporaire :
<?php
// reset-admin.php — À SUPPRIMER IMMÉDIATEMENT APRÈS UTILISATION
require_once __DIR__ . '/config/config.inc.php';
$new_password = 'VotreMotDePasse2024!';
$email = 'admin@votredomaine.com';
$hashed = password_hash($new_password, PASSWORD_BCRYPT);
Db::getInstance()->execute(
"UPDATE `" . _DB_PREFIX_ . "employee`
SET `passwd` = '" . pSQL($hashed) . "',
`email` = '" . pSQL($email) . "'
WHERE `id_employee` = 1"
);
echo 'Mot de passe réinitialisé avec succès. SUPPRIMEZ CE FICHIER MAINTENANT.';
Sécurité critique : Supprimez immédiatement ce script après utilisation. Un fichier de réinitialisation laissé sur le serveur est une faille de sécurité majeure.
Méthode alternative via la CLI Symfony (PS 8.x)
PrestaShop 8.x étant basé sur Symfony, vous pouvez également utiliser la console :
php bin/console prestashop:user:change-password admin@votredomaine.com
Cette commande vous demandera le nouveau mot de passe de manière interactive.
Étape 4 : Vérifications post-reprise
Une fois l'accès rétabli, effectuez ces contrôles essentiels :
Sécurisation immédiate
- **Changez tous les mots de passe** : admin, FTP, base de données, hébergeur
- **Vérifiez les comptes employés** : supprimez tout compte inconnu dans le back-office
- **Régénérez la cookie_key** (PS 1.6) ou les secrets Symfony (PS 1.7/8.x)
- **Vérifiez les modules installés** : désactivez tout module suspect ou inconnu
- **Mettez à jour le fichier `.htaccess`** : regénérez-le depuis le back-office
- **Faites un backup complet** (fichiers + base de données) avant toute modification
- **Documentez chaque accès** dans un gestionnaire de mots de passe
- **Testez en environnement de staging** avant d'intervenir sur la production
- **Mettez à jour PrestaShop** vers la dernière version stable dès que la reprise est stabilisée
- **Auditez les modules** : vérifiez les licences, les mises à jour disponibles et la compatibilité
Contrôle de l'intégrité
# Vérifier les fichiers modifiés récemment (potentiellement compromis)
find /var/www/prestashop -name '*.php' -mtime -30 -type f
# Rechercher des fichiers suspects
grep -rl 'eval(base64_decode' /var/www/prestashop/
grep -rl 'shell_exec\|passthru\|system(' /var/www/prestashop/modules/
Configuration des URLs
Après un transfert, les URLs doivent être mises à jour :
-- Mettre à jour le domaine dans la base de données
UPDATE ps_shop_url
SET domain = 'www.nouveau-domaine.com',
domain_ssl = 'www.nouveau-domaine.com'
WHERE id_shop = 1;
-- Vider le cache de configuration
TRUNCATE TABLE ps_configuration_kpi_lang;
DELETE FROM ps_configuration WHERE name LIKE '%CACHE%';
Étape 5 : Bonnes pratiques pour une reprise sereine
Conclusion
La reprise d'un site PrestaShop existant nécessite de la méthode et de la rigueur. En suivant ces étapes — récupération des accès hébergement, correction de la configuration BDD, réinitialisation du mot de passe admin et vérifications de sécurité — vous reprendrez le contrôle de la boutique en toute sécurité. L'erreur la plus courante est de négliger l'étape de sécurisation post-reprise : changez systématiquement tous les mots de passe et auditez les modules installés.
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.