首页 > 解决方案 > 遇到root用户不授予权限的问题

问题描述

我正在创建这个新用户,专门用于我的 django 项目,我用 mariadb 和 phpmyadmin 创建了这个用户,完成,尝试用 mysql 做同样的事情,突然我发现我的 root 用户不能授予其他用户权限.

更重要的是,我尝试了我的第二个超级用户,即管理员,两者都无法授予它,我已经尝试了几个解决方案来解决这个问题,发布在 stackoverflow 中,但没有任何效果。

这不是远程连接,一切都来自本地主机。

看到很多人说我应该在授予选项后刷新权限,问题是我一开始就无法授予任何东西,已经尝试将所有带有授予选项的授予选项授予 root,反之亦然

当前行显示了您所期望的内容,admin 和 root 都有 grant 和 super priv。

第二行显示了 root 用户拥有和授予的所有权限,如您所见,它显示在最后,带有授予选项。

SELECT Host,User,Grant_priv,Super_priv FROM mysql.user;

SHOW GRANTS FOR 'root'@'localhost';

╔═══════════╦══════════════════╦════════════╦════════════╗
║ Host      ║ User             ║ Grant_priv ║ Super_priv ║
╠═══════════╬══════════════════╬════════════╬════════════╣
║ %         ║ admin            ║ Y          ║ Y          ║
║ %         ║ gameled_admin    ║ N          ║ N          ║
║ localhost ║ mysql.infoschema ║ N          ║ N          ║
║ localhost ║ mysql.session    ║ N          ║ Y          ║
║ localhost ║ mysql.sys        ║ N          ║ N          ║
║ localhost ║ root             ║ Y          ║ Y          ║
╚═══════════╩══════════════════╩════════════╩════════════╝

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN,
PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE
TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION
CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE
USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.*
TO `root`@`localhost` WITH GRANT OPTION

GRANT BACKUP_ADMIN,BINLOG_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SET_USER_ID,SYSTEM_VARIABLES_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`localhost` WITH GRANT OPTION

GRANT ALL PRIVILEGES ON `mysql`.* TO `root`@`localhost` WITH GRANT OPTION

GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION

任何事情都会有帮助,在此先感谢

编辑1:

另一个代码测试:

SELECT User()

结果是:

╔════════════════╗
║ User()         ║
╠════════════════╣
║ root@localhost ║
╚════════════════╝

我得到的一些错误是:

You are not allowed to create a user with GRANT

我用这条线

SHOW GRANTS FOR 'multilang_user';

得到这个:

There is no such grant defined for user 'multilang_user' on host '%'

编辑2:

已创建新的 'root'@'%' 用户

SHOW GRANTS FOR 'root'@'%';

这一行再次显示:

Grants for root@%

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%` WITH GRANT OPTION

GRANT BACKUP_ADMIN,BINLOG_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SET_USER_ID,SYSTEM_VARIABLES_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`%` WITH GRANT OPTION

我再次测试:

GRANT ALL ON *.* TO 'multilang_user'@'localhost' WITH GRANT OPTION;

结果是:

You are not allowed to create a user with GRANT

编辑 3 问题已解决:

解决方案:所以我决定删除我的多语言用户并再次创建它,这次在用户名末尾指定@'localhost',这样我就可以从 root@localhost 授予所有权限

标签: mysqlrootgrant

解决方案


推荐阅读