Fehlercode: 1133. ' kann keine übereinstimmende Zeile in der Benutzertabelle finden

Ich lese O „Relly „MySQL lernen“ und es heißt, dass Sie einen Benutzer in MySQL erstellen können, indem Sie genau dies tun:

mysql> GRANT ALL ON *.* TO "jill"@"%.invyhome.com" IDENTIFIED BY "the_password"; Query OK, 0 rows affected (0.01 sec) 

Aber wenn ich es versuche:

-> grant select on testgrounds.personas to ""@"localhost"; --> Error Code: 1133. Can"t find any matching row in the user table 

Aber es gelingt, wenn ich ein Passwort verwende:

->grant select on testgrounds.personas to ""@"localhost" identified by "pass"; --> 0 row(s) affected 

Ich musste die Berechtigungen für wiederherstellen Benutzer root, weil ich experimentiert habe und sie durcheinander gebracht habe, also denke ich, bevor ich das tue, könnte ich die Anweisung im Buch tatsächlich verwenden (ich erinnere mich nicht an 100%)

-> select current_user; --> "root@localhost" -> show grants; --> "GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"localhost\" IDENTIFIED BY PASSWORD \"*4ACFE3202A5FF5CF467898FC58AAB1D615029441\" WITH GRANT OPTION" --> "GRANT ALL PRIVILEGES ON `testgrounds`.* TO \"root\"@\"localhost\" WITH GRANT OPTION" --> "GRANT PROXY ON \"\"@\"\" TO \"root\"@\"localhost\" WITH GRANT OPTION" 

Stimmt etwas mit meiner MySQL-Installation oder Einrichtung nicht?

Antwort

Dies ist kein Problem mit MySQL Installation oder Einrichtung.

Jeder Kontoname besteht sowohl aus einem Benutzer- als auch einem Hostnamen wie „Benutzername“ @ „Hostname“, auch wenn der Hostname nicht angegeben ist. Aus der MySQL-Referenzhandbuch:

MySQL-Kontonamen bestehen aus einem Benutzernamen und einem Hostnamen. Auf diese Weise können Konten für Benutzer mit demselben Namen erstellt werden, die von verschiedenen Hosts aus eine Verbindung herstellen können.

Dadurch kann MySQL je nach dem auch unterschiedliche Berechtigungsstufen erteilen Host, den sie verwenden, um eine Verbindung herzustellen.

Wenn Aktualisierungen für ein Konto aktualisiert werden, bei dem MySQL den Host-Teil nicht erkennt, wird ein Fehlercode 1133 zurückgegeben, es sei denn, es verfügt über ein Kennwort zur Identifizierung dieses Kontos.

Außerdem Mit MySQL kann ein Kontoname nur durch seinen Benutzernamen angegeben werden. In diesem Fall wird er jedoch als „Benutzername“ @ „%“ behandelt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.