首页 > 数据库 > mysql教程 > 尽管拥有必要的权限,但授予 MySQL 权限时为什么会出现'访问被拒绝”错误?

尽管拥有必要的权限,但授予 MySQL 权限时为什么会出现'访问被拒绝”错误?

Linda Hamilton
发布: 2024-12-01 00:49:15
原创
495 人浏览过

Why Do I Get

授予权限时不出现拒绝访问错误

尝试授予权限时,MySQL 用户可能会遇到错误“Access returned for user 'root' @'localhost'(使用密码:YES)。”这可能令人困惑,因为用户似乎拥有必要的权限。

验证权限

要确认用户具有适当的权限,请运行以下命令:

SELECT user();
SELECT current_user();
SHOW GRANTS FOR 'root'@'localhost';
SELECT * FROM mysql.user WHERE User='root';
登录后复制

这些命令应验证用户确实是 root@localhost 并具有必要的权限,包括:

  • 选择、插入、更新、删除、创建、删除、重新加载、关闭、处理、文件、引用、索引、更改、显示数据库、超级
  • 创建和操作表、视图和例程
  • 向其他对象授予权限用户

问题:授予特定表的权限

尽管拥有这些权限,但在尝试授予特定表的权限时可能会出现错误:

GRANT ALL PRIVILEGES ON *.* TO 'steves'@'[hostname].com' IDENTIFIED BY '[OBSCURED]' WITH GRANT OPTION;
登录后复制

这是因为 mysql.users 表被认为对所有用户都是禁止访问的,除了root。

解决方案:授予所有数据库的权限

要解决此问题,请使用以下命令,该命令授予除 mysql.users 之外的所有数据库的权限:

GRANT ALL PRIVILEGES ON `%`.* TO '[user]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;
登录后复制

使用 %. 代替 .* 确保包括除 mysql.users 表之外的所有数据库。这应该成功授予权限,而不会触发访问被拒绝错误。

以上是尽管拥有必要的权限,但授予 MySQL 权限时为什么会出现'访问被拒绝”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板