Mysql root用户无法创建表或其他超级用户任务

时间:2017-08-10 09:46:04

标签: mysql

服务器版本: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重新启动。为什么会这样,我怎么能解决它?

1 个答案:

答案 0 :(得分:0)

我通过使用skip-grant-tables运行MySQL来解决此问题,以获得完全访问权限,然后修复mysql.user表。针对不同环境有3个root用户条目,但它们没有正确的权限。

相关问题