Access denied, this account is locked

Fermé
Vincent - 12 oct. 2023 à 17:33
mamiemando Messages postés 33557 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 10 mars 2025 - 8 juil. 2024 à 14:25

Bonsoir a tous

Svp j'ai un problème avec mon xampp.

En fait j'ai une application qui fonctionnait bien avec ma base de données et j'ai voulu modifier les privilèges pour pouvoir me connecter à travers une autre machine. Sauf qu'en voulant le faire j'ai dû verrouillé l'utilisateur host et du coup je n'arrive plus à me connecter avec mon logiciel ni même accéder à phpmyadmin.

Svp besoin d'aide. Comment déverrouiller mon utilisateur localhost ?

1 réponse

mamiemando Messages postés 33557 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 10 mars 2025 7 832
8 juil. 2024 à 14:25

Bonjour,

Tu parles de deux choses différentes. La possibilité de se connecter au serveur de données dépend de ce qui est renseigné dans la table mysql.user.

Pour vérifier si c'est le cas, parviens-tu à te connecter en utilisateur avec la commande suivante (en admettant que ton login mysql soit toto):

mysql -u toto -p

Si tu ne parviens pas à te connecter au serveur de base de données en tant qu'utilisateur, c'est :

  • soit que le compte n'existe plus
    • on peut vérifier si on est dans ce cas en se connectant en root
      mysql -u root -p
      ... et en regardant le résultat de : 
      use mysql;
      SELECT user, host FROM user;
    • Si l'utilisateur toto@localhost n'existe pas, alors il faut le créer : 
      CREATE USER 'toto'@'localhost' IDENTIFIED BY 'P4ssw0rd';
  • soit que le mot de passe est incorrect (dans ce cas, voir ici) : 
    ALTER USER 'toto'@'localhost' IDENTIFIED BY 'Passw0rd';

Si tu parviens à te connecter, mais pas à consulter la table, c'est bien un problème de permission sur ladite table. Je t'invite à lire ceci. En théorie, chaque utilisateur non root doit avoir des droits minimaux, nécessaire et suffisant, par rapport à ce qu'il est sensé pouvoir faire. Par exemple, si ton utilisateur toto n'est sensé que lire des données, alors il ne doit pas avoir de privilège qui lui permette d'en écrire, donc il ne devrait qu'avoir que le privilège Select.

  • La liste des permissions actuellement configurées s'affichent avec :
    SHOW GRANTS;
  • Les privilèges existants et leur signification peut être affiché avec la commande suivante : 
    SHOW PRIVILEGES;

Si tu as besoin d'une réponse plus précise, merci de préciser dans quel cas tu te trouves (problème de connexion au serveur de base de données ou problème de privilèges), et si c'est un problème de privilèges, précise quelles types de requête est supposé pouvoir exécuter ton utilisateur SQL.

Bonne chance

0