Commande CREATE refusée pour l'utilisateur ayant GRANT ALL PRIVILEGES
Je suis en train de mettre en place une réplication MySQL esclave, et vais avoir un moment très difficile l'exécution de LOAD DATA FROM MASTER;
. Oui, je sais que c'est déconseillé, mais je suis en cours d'exécution MySQL 5.1, et ce n'est pas mon problème pour le moment.
Pour quelque raison que MySQL me dit toujours la CREATE
commande est refusée, mais un chèque de MONTRER les SUBVENTIONS dit le contraire. Check this out:
mysql> SHOW GRANTS;
+--------------------------------------------------------------------------------------------------------------------+
| Grants for replicator@% |
+--------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'%' IDENTIFIED BY PASSWORD '*ABCDEFABCDEFABCDEFABCDEFBLAHBLAHBLAHBLAH' |
+--------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> LOAD DATA FROM MASTER;
ERROR 1142 (42000): CREATE command denied to user 'replicator'@'localhost' for table 'aggregate'
mysql>
Ce que je pensais était bizarre ici, c'est que lors de l'appel de LOAD DATA FROM MASTER
il pense que je suis 'replicator'@'localhost'
encore SHOW GRANTS
dit 'replicator'@'%'
. Juste pour être sûr, j'ai donné le même privs à 'replicator'@'localhost'
.
mysql> SHOW GRANTS FOR 'replicator'@'localhost';
+----------------------------------------------------------------------------------------------------------------------------+
| Grants for replicator@localhost |
+----------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'replicator'@'localhost' IDENTIFIED BY PASSWORD '*ABCDEFABCDEFABCDEFABCDEFBLAHBLAHBLAHBLAH' |
+----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
Ainsi, toute réflexion sur pourquoi c'est tout foiré? Oui, je n'ai FLUSH PRIVILEGES
de nombreuses fois.
Merci d'avance pour tous les conseils que vous pouvez donner.
source d'informationauteur Brad
Vous devez vous connecter pour publier un commentaire.
Je voudrais suggérer les points suivants:
Lorsque vous vous connectez la prochaine fois, exécuter cette requête:
Si vous voyez deux noms d'utilisateur, vous avez un drôle de scénario
Ce que vous pouvez trouver dans la base de données MySQL 5.0 Certification Study Guide (ISBN 0-672-32812-7), Chapitre 34 ou 35
USER()
écho à ce que vous avez tenté de vous connecter en tantCURRENT_USER()
echos ce que mysql vous a PERMIS de VOUS connecter en tant que.Essayez de vous connecter en utilisant comme réplicateur de l'aide de l'adresse 127.0.0.1 et exécutez la même requête.
Vous pouvez également maker assurer que toutes les colonnes nécessaires sont présents dans mysql.utilisateur de la version de mysql que vous utilisez. Si vous n'avez pas de mise à niveau de la base de données mysql.table utilisateur (à partir d'une migration de MySQL 4 - MySQL 5, ou MySQL 5.0 vers 5.1) colonnes dans mysql.l'utilisateur peut être hors de la synchronisation.
Pour les futurs chercheurs, j'ai trouvé que j'ai cette erreur lors de l'utilisation d'une combinaison de MySQL Workbench et phpMyAdmin: si vous copiez SQL' dans la liste de tables, il ajoute le nom de schéma sur le tableau des noms dans l'instruction create (et dans la clé étrangère commandes qui peuvent être de la partie).
En prenant soin de retirer le nom de schéma guéries de cette question pour moi.
Par exemple:
devrait être changé en:
Curieusement, il suffit de CESSER de fumer-ing le client et de le reconnecter a résolu le problème! De toute évidence,
FLUSH PRIVILEGES
n'est pas assez.J'aimerais entendre les commentaires si vous les avez sur le pourquoi. J'ai toujours entendu dire que
FLUSH PRIVILEGES
permettra de faire exactement cela. Pourrait-il avoir quelque chose à voir avec moi à l'origine de la connexion comme'replicator'@'%'
et puis plus tard, de la création de la'replicator'@'localhost'
compte?Dans tous les cas, si vous avez bizarre autorisations de questions de ce genre, je suppose qu'il vaut la peine d'essayer de reconnecter le client.
Lors de l'utilisation de MySQL Workbench Migration Assistant de copie de la base de données d'un serveur à un autre, j'ai été présenté avec le même message d'erreur parce que le nouveau nom DB ne correspondent pas à l'original. Le nouveau serveur automatiquement le lieux de son nom de domaine en face de tous les DB noms de la création d'un décalage dans les noms. Par conséquent, lors du transfert de DB
xyz
vers le nouveau serveurdomain
il a appelé le nouveau DBdomain_xyz
et le message d'erreur ci-dessus s'est produite pour chaque création de la table.Pour résoudre le problème, j'ai modifié manuellement le nouveau nom DB après la migration de schéma a été généré, la modification de
xyz
àdoman_xyz
.De la pointe-de-la-chapeau à Camwyn la réponse que m'a regarder dans cette direction.