SPIP Wamp MySQL - mot de passe perdu

  comment regénérer son mot de passe SPIP /MySQL

Vous pourriez rencontrer plusieurs soucis de mots de passe autour de SPIP, surtout en installations locales...

Voici un rapide récapitulatif de quelques astuces utiles !

Article publié le 26 novembre 2018, et actualisé en mars 2020

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 Mot de passe de connexion SPIP oublié

C’est la panne la plus fréquente, qui est normalement [1] résolue immédiatement, grâce au formulaire spécifique spip.php?page=spip_pass qui vous demande de rentrer l’email voulu, pour y envoyer un lien de changement de mot de passe...

Mais, au contraire des autres CMS, en cas de Codes perdus : comment faire, l’objectif constant de Sécuriser SPIP rend difficile de régénérer le mot de passe directement au sein de la BDD : le mot de passe de connexion utilisateur n’y est évidemment pas inscrit en clair ; et même si vous avisez le champ pass concerné de la table spip_auteurs, il est codé en binaire, non seulement par un hash sha [2], mais avec un sel aléatoire regénéré à chaque connexion, lors du dialogue de validation de la connexion [3], car le mot de passe n’est jamais transmis en clair sur le réseau.

Si vous n’avez pas accès au mail, il est plus facile de relancer l’installation de SPIP sans perte : il faut au moins avoir accès au FTP, pour renommer [4]l le fichier connect.php de liaison avec la base de données dans le dossier ./config/ (et le fichier chmod.php !
Le prochain accès à l’espace privé vous recréera un compte administrateur-webmestre avec le numéro d’auteur 1 (’enregistrement précédent étant renuméroté en -1) [5]antifi

 Et le mot de passe MySQL

Cela peut arriver de l’oublier /le perdre/, surtout avec les nouvelles versions de Wamp et Adminer, qui exigent de mettre un mot de passe pour autoriser la connexion au SGBD.
Si on veut appliquer le même raisonnement que plus haut, il faudrait aller consulter la table système user de la base système mysql... facile, sauf que si vous n’avez pas le mot de passe de connexion (root) à MySQL, vous ne pouvez pas lancer Adminer ou phpmyadmin pour visualiser et modifier cette information.....

Alors, il faut repasser par la ligne de commande pour lancer l’exécutable mysqlda la mano’ pour passer des commandes ... Un article d’otomatic rappelle la procédure, sauf que les lignes à taper sont plutôt longues et indigestes ; j’en ai fait un fichier batch tout prêt = juste deux paramètres à repréciser dans le script.

Visualisation du Script de Commande DOS/Windows

Deux possibilités vous sont proposées pour regénérer vos accès SQL :
- forcer un nouveau mot de passe pour le user root (supposé existant),
- vous créer un nouveau user tout-puissant toto sans password :

Visualisation des Commandes SQL

Vous pouvez obtenir l’ensemble des fichiers présentés ci-dessus (au sein d’un ZIP), à extraire par xeemple dans la racine de votre dossier Wamp (ou EasyPHP), ou bien télécharger individuellement :
- le script de commandes DOS appelant MySQL (et lui passant le .txt ci-dessous)
- le fichiers de commandes SQL forçant les accès !
Attention aux extensions des noms de fichiers en Windows .bat ou .cmd pour le premier (éventuellement cachées par Windows) et .txt ou .sql ; le téléchargement peut automatiquement rajouter une xtension .txt supplémentaire, vous serez plus précis avec l’extraction de l’archive .zip !
Bien sur vous adapterez à votre contexte et besoins, les scripts de commandes [6], en les ouvrant avec le Bloc-notes de Windows, ou vos Editeurs du WebMestre PC favori.

Nota Bene : L’astuce -et le script- s’applique aussi à EasyPHP ; toutefois, les arborescences du serveur différent bien plus selon les versions, et nous vous laissons le soin d’adapter les fichiers fournis !

 MySQL ou MySQLi /vieilles versions

Encore un truc ! Si vous essayez de recharger de vieilles versions de SPIP (disons une SPIP 2.1.18) sur votre WampServer, vous risquez de ne pas comprendre pourquoi l’installateur SPIP trouve seulement SQlite3 et pas MySQLau moment de choisir le systeme de BDD à l’installation de SPIP [7] ?
PHP étant régulièrement amélioré, a changé son interface avec MySQL ! Les anciennes versions SPIP ne reconnaissent pas MySQLi et nécessitent que votre serveur Apache active aussi l’extension originelle mysql : dans le fichier php.ini (situé dans Apache/apache2.4.9/bin/..) retirez le ; devant la ligne ;extension=php_mysql.dll (approximativement vers l’étage [875]) et relancez WampServer.

Autre point de vigilance éventuelle : l’encodage UTF ou latin_general_ci de vos textes d’articles dans la base de données....
Si vos articles sont tronqués (au niveau d’une première lettre accentuée), vous avez gagné le droit de recharger et converti votre base en UTF : cela n’est proposé que dans les versions SPIP 2 !
Verifiez l’encodage de votre base avec PhpMyAdmin :

Attention, si le plugin Grenier pour SPIP 3 propose d’utiliser la commande ?exec=base_convert_sql_utf8, il fallait en SPIP 2 utiliser la commande ?exec=convert_sql_utf8, comme ci-dessous :
Fin de la conversion en UTF8 (Spip 2.1.18)
Voyez la différence obtenue (à droite !).


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1A condition d’avoir un envoi de mails configuré et opérationnel, ce qui n’est pas le cas sous Wamp/EasyPHP sur Windows !

[2Depuis SPIP 2.1, il s’agissait auparavant d’un codage en md5.

[3Donc la procédure nécessaire pour recréer un mot de passe directement en BDD est la suivante :
- se positionner sur l’enregistrement auteur correspondant,
- crypter le mot de passe voulu en sha (par http://galactron.org/sha256.php)
- modifier l’enregistrement en collant la valeur cryptée dans le champ pass
- mettre à blanc les deux champs alea_actuel et alea_futur
- enregistrer l’enregistrement modifié, et se connecter

[4Nepas effacer, pour garder trace des codes d’accès à la base de données, et le préfixe utilisé .

[5Si vous ré-introduisez les mêmes codes identifiant ou mail et mot de passe de connexion auteur SPIP, vous verrez ce précédent enregistrement reparaître, avec la surprise de vous voir affecter un nombre négatif dans les Informations Personnelles, mais cela n’empêche pas le fonctionnement.

[6Il faut paramétrer le dossier racine SET Wamp_dir= de votre serveur Web (EasyPHP ou Wamp), puis préciser le dossier de la version SET MYSQLv= MySQL activée : on suppose bien que votre dossier Wamp_dir ne comporte pas un nom avec espaces !

[7Pourtant PhpMyAdmin fonctionne bien ! et l’extension mysql semble activée dans le menu interactif de WampServeur / PHP / Extensions PHP ??


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 26 novembre 2018, et actualisé en mars 2020 .

Répondre à cet article