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)

1voto

Ankit Punkte 61

Schritt 1) Öffnen Sie den MySQL Command Line Client.

Schritt 2) Überprüfen Sie alle Benutzer mit: select user, host from mysql.user;

Schritt 3) Löschen Sie den Benutzer mit: drop user username@localhost;

Schritt 4) Erstellen Sie erneut einen Benutzer mit der MySQL-GUI.

Schritt 5) Das Problem ist nun gelöst.

0voto

emallove Punkte 1321

mysql> DELETE FROM mysql.db WHERE user = 'jack'

Starten Sie den Server neu:

# mysql.server restart

Dann machen Sie Ihr CREATE USER Befehl.

0voto

dmena Punkte 1

Ich habe kürzlich diesen Fehler erhalten.

Was bei mir funktioniert hat, ist, in der Mysql-Workbench "Benutzer und Berechtigungen" zu überprüfen und festzustellen, dass der Benutzer noch existiert.

Nachdem ich ihn von dort gelöscht hatte, konnte ich den Benutzer wiederherstellen.

0voto

Jim Leu Punkte 1

Meine Erfahrung mit diesem Fehler resultiert daraus, dass ich explizit aus mysql.user lösche, aber nicht aus mysql.db

Es stellte sich heraus, wenn der Benutzername in der create exists entweder in user oder db ist, erhalten Sie diesen Fehler. Lösen Sie ihn, indem Sie delete from mysql.user where User == 'user@bar'; delete from mysql.db where Benutzer == 'user@bar';

0voto

vik Punkte 313

Ich weiß, dies ist alt, aber da es das erste Ergebnis in Google ist, dachte ich, ich sollte meine Lösung hinzufügen. In meinem Fall hat das Löschen des Benutzers gut funktioniert, aber das erneute Erstellen des Benutzers gab mir einen "ERROR 2013 (HY000): Lost connection to MySQL server during query" und "ERROR 2006 (HY000): MySQL-Server ist nicht mehr verfügbar." Ich habe die Lösung "flush privileges -> drop user" ausprobiert, hatte aber immer noch den gleichen Fehler.

In meinem Fall wurde der Fehler durch ein Mysql-Upgrade von 5.1 -> 5.6 verursacht. Bei der Durchsicht der Fehlerprotokolle fiel mir auf, dass es hieß, ich solle mysql_upgrade ausführen. Das habe ich getan, und meine Anweisung zum Erstellen von Benutzern funktionierte einwandfrei!

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