2016-12-05 2 views
-1

Я пытаюсь сделать правильную вещь (?) И не запускать MySQL как root все время. Так что у меня создать пользователя 'Джонатаном' @ 'локальный', для которых перечислены следующие привилегии:MySQL: Почему пользователь со ВСЕМИ ПРИВИЛЕГАМИ не создает таблицу?

mysql> SHOW GRANTS FOR CURRENT_USER; 
+-------------------------------------------------------------------------+ 
| Grants for [email protected]           | 
+-------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'jonathan'@'localhost'       | 
| GRANT ALL PRIVILEGES ON `sampledb`.`sampledb` TO 'jonathan'@'localhost' | 
+-------------------------------------------------------------------------+ 
2 rows in set (0.00 sec) 

Однако, когда я делаю:

mysql> use sampledb; 
Database changed 

Последовал:

mysql> CREATE TABLE Person ( 
    ->  id int NOT NULL AUTO_INCREMENT, 
    ->  name VARCHAR(100), 
    ->  address VARCHAR(200), 
    ->  birthdate DATE, 
    ->  PRIMARY KEY (id) 
    ->); 
ERROR 1142 (42000): CREATE command denied to user 'jonathan'@'localhost' for table 'person' 

Он говорит CREATE command denied как видно выше. Почему это не работает? Должен ли я иметь «ВСЕ ПРИВИЛЕГИИ» и не включает в себя CREATE?

+0

@Cyclone amazing duplicate find with _exactly_ та же самая проблема с таблицей. –

ответ

0

Вы сбросили привилегии после заявления о предоставлении гранта?

1

Вы сбросили права MySQL после GRANT, выполнив следующую команду?

FLUSH PRIVILEGES; 
+0

да, я сделал это – jonalv

+0

Я действительно не думаю, что смогу сделать 'SHOW GRANTS FOR CURRENT_USER', если бы не причина, тогда он не появлялся там, я думаю? Кроме того, факт, что я могу войти в систему, я беру как указание, что промывка работала ... – jonalv

Смежные вопросы