首页 >数据库 >mysql教程 >为什么 MySQL 返回'无权限的用户'root'访问被拒绝”,如何修复?

为什么 MySQL 返回'无权限的用户'root'访问被拒绝”,如何修复?

Susan Sarandon
Susan Sarandon原创
2024-12-19 14:22:09967浏览

Why Does MySQL Return

无权限的用户“root”访问被拒绝:深入探究根本原因

这种常见错误,“用户的访问被拒绝” 'root'@'localhost'(使用密码:YES)-没有特权?”不能掉以轻心。它有效地阻止管理员访问关键的数据库操作。根本问题通常源于根用户的模式权限被剥夺,使他们无能为力。

连接点:MySQL 5.7 和套接字连接

对于 MySQL 版本 5.7 和上面,值得注意的是默认情况下启用套接字连接。这意味着使用“sudo mysql”足以建立连接。但是,运行“SHOW GRANTS FOR root;”可能会显示“root”用户没有定义的授权。

回收 Root 权限

要恢复 root 访问权限,可以采取以下步骤:

  1. 识别身份验证插件:运行查询“从 mysql.user 选择用户、身份验证字符串、插件、主机;”确定用于 root 用户的身份验证插件。在大多数情况下,它将是“auth_socket”。
  2. 切换到本机密码身份验证:要使用密码进行连接,请使用以下命令更新 mysql.user 表中的“authentication_string”值命令“ALTER USER 'root'@'localhost' 通过 mysql_native_password BY 识别'当前根密码';"。
  3. 刷新权限:执行“FLUSH PRIVILEGES;”刷新权限设置。
  4. 确认更改:重新运行“SELECT user,authentication_string,plugin,host FROM mysql.user;”现在应该显示 root 用户正在使用“mysql_native_password”身份验证。

其他注意事项

对于 MariaDB,命令“SET PASSWORD FOR ' root'@'localhost' = PASSWORD('经理');"应该用于设置密码。

此解决过程假设“sudo mysql_secure_installation”命令在遇到访问被拒绝错误之前已成功运行。如果该命令尚未完成,建议先运行它。

以上是为什么 MySQL 返回'无权限的用户'root'访问被拒绝”,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn