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)

0voto

irfan habib Punkte 1

Der MySQL-Server läuft mit der Option --skip-grant-tables, so dass er diese Anweisung nicht ausführen kann

-2voto

PyDevSRS Punkte 1477

Ich hatte auch das gleiche Problem konfrontiert, nach ein paar Suchen, fand ich eine Lösung, die für mich funktionierte.Ich hoffe, es wird Ihnen helfen. Da Sie bereits Benutzer erstellt haben, versuchen Sie nun, eine FLUSH PRIVILEGES in Ihrer Mysql-Konsole. Dieses Problem ist bereits in MySql bug post. Nach dem Spülen können Sie nun einen neuen Benutzer anlegen. Folgen Sie den nachstehenden Schritten:

Step-1: Open terminal Ctrl+Alt+T
Step-2: mysql -u root -p  , it will ask for your MySQL password.

Jetzt können Sie die Mysql-Konsole sehen.

Step-3: CREATE USER 'username'@'host' IDENTIFIED by 'PASSWORD';

Anstelle des Benutzernamens können Sie den gewünschten Benutzernamen eingeben. Wenn Sie Mysql auf Ihrem lokalen Rechner ausführen, dann geben Sie "localhost" anstelle des Hosts, ansonsten geben Sie den Namen des Servers an, auf den Sie zugreifen möchten.

Beispiel: CREATE USER smruti@localhost IDENTIFIED by 'hello';

Jetzt wird ein neuer Benutzer erstellt. Wenn Sie allen Zugang gewähren wollen, geben Sie ein

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Jetzt können Sie MySQL beenden, indem Sie \q Loggen Sie sich jetzt noch einmal über

mysql -u newusername -p und drücken Sie dann die Eingabetaste. Sie können alles sehen.

Ich hoffe, das hilft.

-2voto

Richard Abonyi Punkte 441

Löschen Sie einfach die benutzerbezogenen Daten aus mysql.db (vielleicht auch aus anderen Tabellen), und erstellen Sie dann beide neu.

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