mysql - 遇到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 授予所有权限
解决方案
推荐阅读
- python - 无法在 Pygame 中加载音乐
- java - 数组中的 LocalDate 给了我空结果
- .net-core - 使用 NuGet for InsuranceBot 示例在 VS 2017 中返回 .NetCore 错误
- python - 悬停在按钮上的顶层窗口和顶层窗口本身
- php - 在同一页面上执行表单操作后重定向到 PHP 中的另一个页面
- php - GAE 上的 PHP ZipArchive 返回只读文件系统
- javascript - 如何在 Heroku 中运行监听 MongoDB 和监听套接字 io 消息的快速服务器?
- java - 如何将 SQL 查询转换为 Lambda 或 Stream (Java 8)?
- php - 尝试使用 PHP 从 HTML 中提取数据时出错
- python - 张量流:freeze_graph - tensorflow.python.framework.errors_impl.DataLossError