Heim  >  Artikel  >  Datenbank  >  So beheben Sie den von MySQL während der Gewährung gemeldeten Fehler ERROR 1064 (42000).

So beheben Sie den von MySQL während der Gewährung gemeldeten Fehler ERROR 1064 (42000).

PHPz
PHPznach vorne
2023-05-28 23:53:133880Durchsuche

Die meisten im Internet gefundenen Gewährungsmethoden melden Fehler. Der Hauptgrund dafür ist, dass die ursprüngliche Methode nach MySQL-Version 8.0 nicht mehr verwendet werden kann gemeldet

FEHLER 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, um die richtige Syntax in der Nähe von „identifiziert durch ‚123456“ in Zeile 1 zu finden.

Richtig grant way

SELECT version();
grant all privileges on test.* to test@'%' identified by '123456';
create user test@'localhost' identified by '123456';
MySQL8.0-Passwort-Login Nicht auf dem neuesten Stand

grant all privileges on test.* to test@'localhost';

Hinzugefügt: MySQL ERROR 1064 (42000) – Grant meldet immer einen Fehler, egal was passiert, was ist los?

Freunde, die MySQL verwendet haben, wissen, dass es häufig einige Gewährungsvorgänge (Autorisierungsvorgänge) gibt. Ich frage mich, ob Sie auf ein solches Problem gestoßen sind.

FEHLER 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie die richtige Syntax in der Nähe von „123456“ in Zeile 1 MySQL grant SQL

Fügen Sie es in das Terminal ein und führen Sie es aus.

Es wird ein Fehler gemeldet!

Nachdem jeder Buchstabe eingegeben wurde, wird er ausgeführt.

Es wird erneut ein Fehler gemeldet!

Viele Male bestätigt und ausgeführt,

Ein Fehler ist erneut aufgetreten!

Ich werde verrückt, was soll ich tun? Machen Sie sich keine Sorgen, lesen Sie den Artikel weiter.
Unterschiede in den Versionen
Überprüfen Sie zunächst Ihre MySQL-Version, die Fehler meldet. Es wird geschätzt, dass Fehler nicht durch das Auswendiglernen oder gar blindes Eingeben von Befehlen gemeldet werden am meisten. Ob Sie es glauben oder nicht? Testen Sie es mit echten Daten

1. Versuchen Sie es zuerst mit MySQL 8.0

flush privileges;

Ein Fehler wird gemeldet

2. Versuchen Sie es erneut mit MySQL 5.7

alter user test@'localhost' identified with mysql_native_password by '123456';

Erfolgreich.

Aufmerksame Freunde, ist Ihnen aufgefallen, dass das zurückgegebene Ergebnis eine Meldung enthält: 1 Warnung, was ist das?

mysql> grant all privileges on test.* to test@'%' identified by '123456';  
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1

Es stellt sich heraus, dass der Beamte in MySQL 5.7 daran erinnert hat, dass diese SQL-Syntax veraltet sein wird.

Grant korrekt ausführen

Wie führen wir Grant also in MySQL Version 8.0 und höher korrekt aus?

Erstellen Sie zuerst einen Benutzer und erteilen Sie dann die Autorisierung.

mysql> grant all privileges on test.* to test@'%' identified by '123456';    
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> flush privileges;

Es ​​wird empfohlen, diese Methode zum Erteilen von Berechtigungen bei zukünftiger Verwendung zu verwenden, da sie auch für MySQL Version 5.7 geeignet ist und die offizielle Methode die Ein-Klick-Methode zur Benutzererstellung und Berechtigungserteilung aufgegeben hat.

Das obige ist der detaillierte Inhalt vonSo beheben Sie den von MySQL während der Gewährung gemeldeten Fehler ERROR 1064 (42000).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen