首页 >数据库 >mysql教程 >为什么我在 MySQL 中收到'用户'root'@'localhost'访问被拒绝”的信息以及如何修复它?

为什么我在 MySQL 中收到'用户'root'@'localhost'访问被拒绝”的信息以及如何修复它?

DDD
DDD原创
2024-12-15 09:28:13325浏览

Why Am I Getting

由于缺少权限,用户 'root'@'localhost' 的访问被拒绝

问题:

用户尝试以 root 用户身份访问 MySQL 时会遇到“用户访问被拒绝” 'root'@'localhost' (using password: YES)”错误,表明root用户缺乏建立连接所需的权限。

解释:

默认情况下,MySQL 5.7 及更高版本主要依赖套接字身份验证进行本地连接。这意味着尝试通过命令行作为“sudo mysql”连接将不需要密码。但是,此身份验证方法不会授予 root 用户任何特定权限。

解决方案:

建立基于密码的连接并授予 root 用户权限:

  1. 运行“SELECT user,authentication_string,plugin,host FROM mysql.user;”查询当前用户配置。验证 root 用户的身份验证插件是否为“auth_socket”。
  2. 执行“ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';”语句将 root 用户的身份验证方法从套接字修改为本机。
  3. 运行“FLUSH PRIVILEGES;”命令以确保更改生效。
  4. 重复步骤 1 以确认 root 用户的身份验证插件已更改为“mysql_native_password”。

其他注意事项:

  • “当前根密码”应替换为现有 root 用户的密码。
  • 对于 5.7 之前的 MySQL 版本,身份验证方法可能是“caching_sha2_password”。在这种情况下,请使用“ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Current-Root-Password';”
  • 对于 MariaDB 用户,可以使用以下命令为 root 用户设置密码:“SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');”

以上是为什么我在 MySQL 中收到'用户'root'@'localhost'访问被拒绝”的信息以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

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