MySQL: Accorder des Privilèges suivie par Flush Privileges n'a pas d'effet, pas d'erreur (en étant connecté en tant que root)
Je et un teammember sont perplexes, parce que les commandes pour accorder des privilèges à un utilisateur distant d'échouer, mais sans erreur. Le nouvel utilisateur a été ajouté avec succès à mysql.l'utilisateur à l'aide de CRÉER un UTILISATEUR, mais d'ACCORDER des PRIVILÈGES suivie par FLUSH PRIVILEGES n'affecte pas les subventions de la table. Ces deux commandes sont censés dire " Query OK. 0 lignes concernées, qu'elles font. Mais qui MONTRENT des SUBVENTIONS de ne pas montrer les nouveaux privilèges, ni ne pouvons nous connecter avec ce nom d'utilisateur à partir de cette adresse ip à distance. Quelqu'un peut-il expliquer le comportement suivant?
mysql> SELECT CURRENT_USER(); ///I'm definitely in as root user
+----------------+
| CURRENT_USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myNewUser'@'remoteIP'; //grant to existing user
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS;
| Grants for root@localhost
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*////TakenOut///' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
2 rows in set (0.00 sec)
Je m'attends à une 3e rangée avec des privilèges pour les "myNewUser'.
assurez-vous que vous pouvez résoudre l'adresse ip à un nom d'hôte, si vous n'avez pas
skip-name-resolve
spécifié dans votre mon.cnf de fichier.OriginalL'auteur devney | 2012-08-24
Vous devez vous connecter pour publier un commentaire.
La
SHOW GRANTS
déclaration montre les subventions pour l'utilisateur actuel. Dans votre cas, pour root@localhost. Donc, vous ne devriez pas s'attendre à voir une troisième rangée avec les privilèges pourmyNewUser
.Plutôt, d'une requête mysql.l'utilisateur de la table...
Je voudrais vérifier que le mot de passe est défini pour
'myNewUser'@'remoteip'
. (MySQL identifie un "utilisateur" par la combinaison du nom d'utilisateur et l'ordinateur hôte. L'utilisateur'myNewUser'@'thisip'
est un utilisateur autre que'myNewUser'@'thatip'
.)Aussi, nous avons de ce paramètre dans notre MySQL mon.cnf fichiers:
Donc, nous utilisons des adresses IP plutôt que des noms d'hôtes. (Ce qui évite les problèmes de connexion qui se produisent lorsque le système DNS ne peut pas faire une recherche DNS inversée à partir de l'adresse IP pour obtenir un nom d'hôte.)
http://dev.mysql.com/doc/refman/5.1/en/host-cache.html
Ligne de fond est que MySQL ne une "recherche inversée" d'une adresse IP pour obtenir un nom d'hôte. Si il ne peut pas obtenir un nom d'hôte à une adresse IP donnée, les connexions à partir de l'adresse IP échoue.
Façon de reposter la réponse en commentaire à votre question, au lieu de simplement l'accepter...
OriginalL'auteur spencer7593