Ich habe gerade versucht, einen neuen Benutzer mit MySQL hinzuzufügen
CREATE USER 'name'@'%' IDENTIFIED BY '...'
Es schlägt jedoch mit folgendem Fehler fehl:
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
Das Hinzufügen des Benutzers nur für localhost funktioniert einwandfrei:
CREATE USER 'name'@'localhost' IDENTIFIED BY '...'
Ich habe keine Ahnung, was das Problem sein könnte. Für Ideen wäre ich dankbar.
(Ich benutze mysql Ver 14.14 Distrib 5.1.66
.)
Antworten:
Laut den Dokumenten interpretiert MySQL es, wenn Sie den @ 'Hostnamen' (das heißt CREATE USER 'Name') nicht verwenden, als hätte er ein @ '%'. Die von Ihnen angegebene Fehlermeldung weist darauf hin, dass das System bereits einen Benutzernamen '@'% 'enthält:
Wenn Sie den Benutzer löschen und trotzdem die Nachricht erhalten, versuchen Sie, FLUSH PRIVILEGES auszuführen.
Weitere Informationen finden Sie auch in dieser SO-Frage .
quelle
Bei der Verwendung des Docker-Images mysql: 5.7 trat der gleiche Fehler auf. Der Hauptfehler bestand darin, einen
root
Benutzer zu erstellen, der standardmäßig vorhanden ist. Weitere Informationen: https://github.com/docker-library/mysql/issues/129Wie im obigen Link angegeben, bestand die Lösung darin , beim Starten des Docker-Images NICHT
MYSQL_USER
undMYSQL_PASSWORD
in den Umgebungsvariablen zu setzen .quelle