Ich hatte diese Herausforderung bei der Arbeit an MySQL Ver 8.0.21
Ich wollte Berechtigungen für eine Datenbank namens my_app_db
zum root
Benutzer, der auf localhost
Gastgeber.
Aber wenn ich den Befehl ausführe:
use my_app_db;
GRANT ALL PRIVILEGES ON my_app_db.* TO 'root'@'localhost';
Ich erhalte die Fehlermeldung:
FEHLER 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; lesen Sie im Handbuch zu Ihrer MySQL-Serverversion nach, um die richtige Syntax in der Nähe von 'my_app_db.* TO 'Root'@'localhost'' in Zeile 1> zu verwenden.
So habe ich das Problem behoben :
Melden Sie sich an Ihrer MySQL-Konsole an. Sie können ändern root
zum Benutzer mit dem Sie sich anmelden möchten:
mysql -u root -p
Geben Sie Ihr mysql Root-Passwort
Als Nächstes listen Sie alle Benutzer und ihre Hosts auf dem MySQL-Server auf. Anders als bei PostgreSQL wird dies oft in der mysql
Datenbank. Wir müssen also die mysql
Datenbank zuerst:
use mysql;
SELECT user, host FROM user;
Hinweis : Wenn Sie nicht die use mysql
erhalten Sie die no database selected
Fehler.
Dies sollte Ihnen eine Ausgabe in dieser Art liefern:
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
Als Nächstes gewähren Sie dem gewünschten Benutzer auf der Grundlage der in der Liste enthaltenen Informationen Berechtigungen. Wir müssen zunächst die Datenbank auswählen, bevor wir ihr die Berechtigung erteilen. Ich verwende die root
Benutzer, der auf dem localhost
Gastgeber:
use my_app_db;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
Hinweis : Die GRANT ALL PRIVILEGES ON database_name.* TO 'root'@'localhost';
Befehl funktioniert möglicherweise nicht für moderne Versionen von MySQL. Die meisten modernen Versionen von MyQL ersetzen den database_name
con *
en el Privilegien vergeben nachdem Sie die Datenbank ausgewählt haben, die Sie verwenden möchten.
Sie können dann die MySQL-Konsole verlassen:
exit
Das war's.
Ich hoffe, das hilft
5 Stimmen
Sie sollten Folgendes verwenden
FLUSH PRIVILEGES;
nur, wenn Sie die Fördertabellen direkt mit Anweisungen wieINSERT
,UPDATE
, oderDELETE