426 Stimmen

FEHLER 1396 (HY000): Operation CREATE USER für 'jack'@'localhost' fehlgeschlagen

Ich scheine nicht in der Lage zu sein, einen einfachen Benutzer, den ich gelöscht habe, neu zu erstellen, selbst als Root in MySQL.

Mein Fall: Der Benutzer "jack" existierte bereits, aber ich habe ihn aus mysql.user gelöscht, um ihn neu zu erstellen. Ich sehe keine Spuren davon in dieser Tabelle. Wenn ich diesen Befehl für einen anderen, zufälligen Benutzernamen, z. B. "jimmy", ausführe, funktioniert er einwandfrei (genau wie ursprünglich für "jack").

Was habe ich getan, um den Benutzer 'jack' zu beschädigen, und wie kann ich diese Beschädigung rückgängig machen, um 'jack' wieder als gültigen Benutzer für diese Installation von MySQL anzulegen?

Siehe nachstehendes Beispiel. (Natürlich lag ursprünglich viel Zeit zwischen der Erschaffung von "Jack" und seiner Entfernung).

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jack             | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

mysql> delete from user where user = 'jack';
Query OK, 1 row affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
4 rows in set (0.00 sec)

mysql> CREATE USER 'jack'@'localhost' IDENTIFIED BY 'test123';
ERROR 1396 (HY000): Operation CREATE USER failed for 'jack'@'localhost'
mysql> CREATE USER 'jimmy'@'localhost' IDENTIFIED BY 'test123';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+-----------------+
| user             | host            |
+------------------+-----------------+
| root             | 127.0.0.1       |
| debian-sys-maint | localhost       |
| jimmy            | localhost       |
| root             | localhost       |
| root             | russ-elite-book |
+------------------+-----------------+
5 rows in set (0.00 sec)

5voto

TonyWu Punkte 59
two method 
one :
setp 1: drop user 'jack'@'localhost';
setp 2: create user 'jack'@localhost identified by 'ddd';

two:
setp 1: delete from user where user='jack'and host='localhost';
setp 2: flush privileges;
setp 3: create user 'jack'@'localhost' identified by 'ddd';

5voto

Litter Punkte 127

Ich hatte den gleichen Fehler. Aber der Befehl "FLUSH PRIVILEGES;" hat nicht geholfen. Ich habe das so gemacht:

CREATE USER 'jimmy'@'localhost' IDENTIFIED BY 'test123';
UPDATE mysql.user SET USER='jack' WHERE USER='jimmy';

4voto

FBA Gimhana Punkte 211

Es scheint, dass Sie einen Benutzer für Ihre Datenbank erstellen und diesem Benutzer Rechte gewähren müssen

--> Benutzer für Datenbank anlegen

CREATE  USER <'username'>@'%'IDENTIFIED BY <'password'>;

ex - CREATE USER 'Root'@'%'IDENTIFIED BY 'Root';

--> Privilegien erteilen

FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON <db name>.* TO '<username>'@'%';

ex- GRANT ALL PRIVILEGES ON mydb.* TO 'Root'@'%';

4voto

Parin Patel Punkte 41

BUG von MySql behoben: Fehler Code-1396

  • Wann immer Sie versucht hatten, eine Abfrage auszuführen, die einen Benutzer wie unten gezeigt erstellt. MySql> CREATE USER 'springstudent'@'localhost' IDENTIFIED BY 'springstudent'; GEWÄHRE ALLE PRIVILEGIEN AUF * . * TO 'springstudent'@'localhost';
  • Aber wenn Sie versuchen, Abfrage ausführen, die Benutzer mit allen Berechtigungen erstellen, Aufgrund eines Fehlers werden Vorrechte erstellt, ohne dass der Benutzer angezeigt wird.
  • Aufgrund dieses Problems müssen wir das folgende Skript für Flush-Privilegien verwenden MySql> drop user 'springstudent'@'localhost'; Privilegien leeren; create user admin@localhost identified by 'admins_password'
  • Nach dem Löschen des Benutzers müssen die mysql-Berechtigungen geleert werden
  • Dann Benutzer erneut anlegen

Gotchaaa.... Gelöst....

3voto

juettemann Punkte 313

Seltsamerweise hat die MySQL-Workbench das Problem für mich gelöst. Auf der Registerkarte Verwaltung -> Benutzer und Berechtigungen wurde der Benutzer mit einem Fehler aufgeführt. Mit der Option "Löschen" wurde das Problem gelöst.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X