У меня есть база данных MySQL, и я не могу предоставлять разрешения пользователям на вновь созданных базах данных при входе в систему как root.
mysql> create database test1;
Query OK, 1 row affected (0.00 sec)
mysql> grant usage on *.* to 'test'@'%' identified by 'test';
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
mysql> show grants for root;
+--------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*hash_is_here' |
+--------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select user();
+-----------------+
| user() |
+-----------------+
| root@172.17.0.4 |
+-----------------+
1 row in set (0.01 sec)
Как видите, я могу войти в систему как root, root имеет все права на .. Есть идеи, как это могло случиться? Я не обновлял MySQL, сохраняя данные (я знаю, что это могло быть вызвано обновлением с 5 до 5.5). Спасибо.
У вас есть все привилегии для корень @% но не «вариант предоставления». В моей установке MySQL, где моя учетная запись root может применять грант, это результат "show grants":
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*some_hash' WITH GRANT OPTION
В MySQL предоставление "все привилегии"не включает грант. Это должно быть указано явно.
Даже если вы не на 5.5, возможно, вам все равно нужно запустить mysql_upgrade из /mysql/bin
каталог?