服务器版本:5.7.19-0ubuntu0.16.04.1(Ubuntu)
我的MySQL root
用户遇到了一些奇怪的问题。现在阅读一堆帖子,但没有找到解决方案。
当我尝试创建数据库时:
mysql> create database test;
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'test'
因此root用户无法创建数据库。也无法选择例如mysql.user
表或:
mysql> flush privileges;
ERROR 1227 (42000): Access denied; you need (at least one of) the RELOAD privilege(s) for this operation
但权限似乎正确:
mysql> select user();
+------------------------------------+
| user() |
+------------------------------------+
| root@Ubuntu-1604-xenial-64-minimal |
+------------------------------------+
mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| root@% |
+----------------+
mysql> show grants;
+-------------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------------+
| GRANT SUPER ON *.* TO 'root'@'%' WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `ditto`.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------------+
我在数据库中拥有超级用户访问权限。
由于它是一个实时生产服务器,我无法关闭服务器并使用--skip-grant-tables
重新启动。为什么会这样,我怎么能解决它?
答案 0 :(得分:0)
我通过使用skip-grant-tables
运行MySQL来解决此问题,以获得完全访问权限,然后修复mysql.user
表。针对不同环境有3个root用户条目,但它们没有正确的权限。