J'ai créé une base de données, par exemple '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;
Maintenant je peux me connecter à la base de données depuis n'importe où, mais je ne peux pas créer de tables.
Comment accorder tous les privilèges sur cette base de données et (à l'avenir) sur les tables. Je ne peux pas créer de tables dans la base de données 'mydb'. J'obtiens toujours :
CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'
11 votes
Qu'est-ce que vous obtenez lorsque vous affichez les subventions pour l'utilisateur actuel ;
6 votes
Avez-vous essayé d'exécuter
FLUSH PRIVILEGES
?2 votes
@Andy Merci pour "SHOW GRANTS FOR CURRENT_USER ;" - cela m'aide à voir ma faute de frappe.
3 votes
@Romain,
flush privileges
n'est pas nécessaire lorsque vous utilisezgrant
des commandes. x46 votes
Vous devez utiliser
FLUSH PRIVILEGES;
seulement si vous modifiez directement les tables de subventions en utilisant des instructions telles queINSERT
,UPDATE
ouDELETE
0 votes
Essayez également de vous reconnecter pour l'utilisateur