Your password has expired

Non je ne suis pas une WampServer's addict, ou peut-être que si mais c'est tellement pratique de pouvoir développer et tester en local sans avoir besoin de faire des transferts en ligne ! Alors quand mon allié est malade, c'est toujours un peu stressant pour moi que d'imaginer faire sans lui...

Configuration :

  • Windows 10 Famille 64 bits
  • WampServer 3.0.0 avec paramétrage de base (pas de mot de passe pour l'accès aux bases de données), installé depuis 1 an.

Symptômes :

  • A l'ouverture des sites, un message d'erreur indique un problème d'accès à la base de données qui dépend de la méthode de développement utilisée :
    • Pour WordPress, il s'agit du message "Erreur de connexion à la base de données".
    • Pour Prestashop on aura une variante "Link to database cannot be established: SQLSTATE[HY000] [1862] Your password has expired. To log in you must change it using a client that supports expired passwords."
    • Et pour les sites sans CMS, l'erreur affichée sera du type "Erreur !: SQLSTATE[HY000] [1862] Your password has expired. To log in you must change it using a client that supports expired passwords."
  • Et à l'ouverture de phpMyAdmin, l'utilisateur root se verra refuser l'accès pour une "Connexion au serveur MySQL non permise".
Erreur de connexion phpMyAdmin - WampServer

Soins à apporter :

Dans un premier temps, l'accès à phpMyAdmin étant impossible, il va falloir passer par la console MySQL de WampServer en cliquant sur l'icône dans la barre des tâches puis MySQL > Console MySQL. Et en exécutant la requête ci-dessous, l'accès sera à nouveau possible.
SET GLOBAL default_password_lifetime = 0;
  Console MySQL Mais attention, cette astuce ne fonctionne que temporairement (une semaine il me semble) donc plutôt que d'avoir besoin de faire la manipulation très souvent, l'idée est de profiter de l'accès retrouvé pour modifier le mot de passe durablement. Comme modifier le mot de passe (ou en mettre un dans mon cas) nous obligerait à faire des modifications de configuration sur tous les projets en cours, il suffit de notifier à Wamp que l'on est attentif à la durée de vie d'un mot de passe en allant dans Comptes d'utilisateur > Changer les privilèges (lien de la colonne Action sur la ligne de l'utilisateur root) > Modifier le mot de passe > Exécuter. Cette manipulation peut aussi être faite manuellement dans la base de données "mysql", table "users", champ "password_last_changed".