Author: Marc TERRIER Date: To: La Guilde Subject: MySQL : pourquoi 'root'@'localhost' => 'root'@'%' ?
Bonjour la Guilde,
Au taf, j'ai un serveur MySQL sur lequel sont déclarés deux utilisateurs
: 'root'@'localhost' et 'root'@'%'. Pour une raison que j'ignore, le
compte 'root'@'%' a tous les privilèges sauf deux (EVENT et TRIGGER)
alors que le compte 'root'@'localhost' les a bien tous.
Je souhaite rajouter les privilèges qui lui manquent au compte
'root'@'%', pour qu'il soit possible d'utiliser les events MySQL, en
étant logué 'root' depuis un serveur autre que celui-ci (donc en étant
'root'@'%').
Je me connecte donc en root MySQL sur le serveur lui-même, et je
m'attends à me retrouver 'root'@'localhost', et à pouvoir passer la
commande GRANT ALL PRIVILEGES qui va bien. Mais surprise, ça ne marche
pas (erreur 1045, access denied, etc.).
Bien qu'étant en local (l'@ IP du serveur MySQL auquel je me connecte
est 127.0.0.1), ma session MySQL est ouverte en tant que 'root'@'%' et
non en tant que 'root'@'localhost', comme me le confirment SELECT USER()
et SELECT CURRENT_USER(), qui renvoient respectivement l'utilisateur
sous lequel j'ai cherché à me connecter, et celui sous lequel je suis
effectivement connecté.
Pourquoi ne suis-je pas 'root'@'localhost', et comment est-ce que je
peux remettre ça d'équerre, SVP, et remettre les deux privilèges manquants ?
P.S. : les logs ne sont pas activés pour l'instant, sur ce serveur, et
je ne peux pas les activer sans redémarrer MySQL, ce qui est
provisoirement exclu, ce qui ne facilite pas le diagnostic... :-/