J'ai juste essayé d'ajouter un nouvel utilisateur à MySQL en utilisant
CREATE USER 'name'@'%' IDENTIFIED BY '...'
Cependant, il échoue avec l'erreur suivante:
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
Ajouter l'utilisateur juste pour localhost fonctionne très bien:
CREATE USER 'name'@'localhost' IDENTIFIED BY '...'
Je n'ai aucune idée de ce qui pourrait être le problème. Je serais reconnaissant pour toutes les idées.
(J'utilise mysql Ver 14.14 Distrib 5.1.66
.)
Réponses:
Selon les documents, si vous omettez le @ 'hostname' (c'est-à-dire CREATE USER 'name') MySQL l'interprétera comme s'il avait un @ '%'. Le message d'erreur que vous avez fourni suggère qu'il existe déjà un utilisateur 'nom' @ '%' dans le système:
Si vous supprimez l'utilisateur et obtenez toujours le message, essayez d'exécuter FLUSH PRIVILEGES.
Voir également cette question SO pour plus d'informations.
la source
J'étais confronté à cette même erreur lors de l'utilisation de l'image docker mysql: 5.7. L'erreur principale a été de créer un
root
utilisateur qui existe par défaut. Plus d'informations: https://github.com/docker-library/mysql/issues/129Comme indiqué dans le lien ci-dessus, la solution consistait à ne PAS définir
MYSQL_USER
etMYSQL_PASSWORD
dans les variables d'environnement lors du démarrage de l'image docker.la source