Discussion:
MySQL : pourquoi 'root'@'localhost' => 'root'@'%' ?
Marc TERRIER
2016-11-29 21:18:45 UTC
Permalink
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... :-/

Merci d'avance.
--
Marc TERRIER
Yves Martin
2016-12-01 20:08:58 UTC
Permalink
Bonsoir,

D'après http://stackoverflow.com/questions/7644704/whats-the-difference
-between-127-0-0-1-localhost-hostname-in-mysql-user-tab

il semble que MySQL distingue "localhost" et "127.0.0.1"

Si tu te connecte par socket unix, pas de doute, ça passe comme
"localhost".

Bonne soirée
--
Yves Martin
m***@free.fr
2016-12-03 18:54:38 UTC
Permalink
Merci de ta suggestion, Yves.

Je trouve tordu, de la part de MySQL, de distinguer 127.0.0.1 et localhost, à moins qu'il y ait une bonne raison que je ne connais pas encore.

Dans ce cas précis, le serveur MySQL en question tourne sous Windows : si je me suis permis de poser la question sur la liste de La Guilde, c'est parce que MySQL est libre, même si Windows ne l'est pas.

Je vais faire l'essai de me connecter à ce même serveur depuis un client Linux, juste pour voir si ça change quelque chose. L'idée est intéressante, et je vous tiendrai au courant.

Bonne soirée à vous tous également,

Marc

----- Mail original -----
De: "Yves Martin" <***@free.fr>
À: "Marc TERRIER" <***@free.fr>, "La Guilde" <***@guilde.asso.fr>
Envoyé: Jeudi 1 Décembre 2016 21:08:58
Objet: Re: MySQL : pourquoi 'root'@'localhost' => 'root'@'%' ?

Bonsoir,

D'après http://stackoverflow.com/questions/7644704/whats-the-difference
-between-127-0-0-1-localhost-hostname-in-mysql-user-tab

il semble que MySQL distingue "localhost" et "127.0.0.1"

Si tu te connecte par socket unix, pas de doute, ça passe comme
"localhost".

Bonne soirée
--
Yves Martin
m***@free.fr
2016-12-08 10:48:01 UTC
Permalink
Bon, j'avais dit que j’essaierais de me connecter à ce serveur MySQL depuis un client Linux, mais finalement je ne peux pas : le serveur n'est accessible que depuis les machines du réseau interne du client, et je n'ai accès à ce serveur qu'en RDP depuis un autre serveur, auquel j'accède également en RDP. Pas l'ombre d'une machine Linux en vue sur ce réseau. En plus, on m'a fait comprendre que l'origine du problème n'était pas là, et que j'avais cherché dans une mauvaise direction... :-/

Chapitre clos (même s'il est frustrant de ne pas savoir le fin mot de l'histoire), et désolé de vous avoir dérangés pour rien.

----- Mail original -----
De: "marc terrier" <***@free.fr>
À: "Yves Martin" <***@free.fr>
Cc: "La Guilde" <***@guilde.asso.fr>
Envoyé: Samedi 3 Décembre 2016 19:54:38
Objet: Re: MySQL : pourquoi 'root'@'localhost' => 'root'@'%' ?

Merci de ta suggestion, Yves.

Je trouve tordu, de la part de MySQL, de distinguer 127.0.0.1 et localhost, à moins qu'il y ait une bonne raison que je ne connais pas encore.

Dans ce cas précis, le serveur MySQL en question tourne sous Windows : si je me suis permis de poser la question sur la liste de La Guilde, c'est parce que MySQL est libre, même si Windows ne l'est pas.

Je vais faire l'essai de me connecter à ce même serveur depuis un client Linux, juste pour voir si ça change quelque chose. L'idée est intéressante, et je vous tiendrai au courant.

Bonne soirée à vous tous également,

Marc

----- Mail original -----
De: "Yves Martin" <***@free.fr>
À: "Marc TERRIER" <***@free.fr>, "La Guilde" <***@guilde.asso.fr>
Envoyé: Jeudi 1 Décembre 2016 21:08:58
Objet: Re: MySQL : pourquoi 'root'@'localhost' => 'root'@'%' ?

Bonsoir,

D'après http://stackoverflow.com/questions/7644704/whats-the-difference
-between-127-0-0-1-localhost-hostname-in-mysql-user-tab

il semble que MySQL distingue "localhost" et "127.0.0.1"

Si tu te connecte par socket unix, pas de doute, ça passe comme
"localhost".

Bonne soirée
--
Yves Martin
Continuer la lecture sur narkive:
Loading...