689 Stimmen

MySQL: Erteile **alle** Rechte auf der Datenbank

Ich habe eine Datenbank erstellt, zum Beispiel 'mydb'.

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH';
GRANT ALL ON mydb.* TO 'myuser'@'%';
GRANT ALL ON mydb TO 'myuser'@'%';
GRANT CREATE ON mydb TO 'myuser'@'%';
FLUSH PRIVILEGES;

Jetzt kann ich mich von überall in die Datenbank einloggen, aber keine Tabellen erstellen.

Wie kann ich alle Berechtigungen für diese Datenbank und (in Zukunft) für die Tabellen gewähren? Ich kann keine Tabellen in der Datenbank "mydb" erstellen. Ich bekomme immer:

CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'

5 Stimmen

Sie sollten Folgendes verwenden FLUSH PRIVILEGES; nur, wenn Sie die Fördertabellen direkt mit Anweisungen wie INSERT , UPDATE , oder DELETE

5voto

pgmank Punkte 4587

Um alle Rechte für die Datenbank zu vergeben: mydb für den Benutzer: myuser einfach ausführen:

GRANT ALL ON mydb.* TO 'myuser'@'localhost';

oder:

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';

El PRIVILEGES Schlüsselwort ist nicht erforderlich.

Ich weiß auch nicht, warum die anderen Antworten nahelegen, dass die IDENTIFIED BY 'password' an das Ende des Befehls angehängt werden. Ich glaube, dass dies nicht erforderlich ist.

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