首页 >数据库 >mysql教程 >为什么用户'root@localhost”的 MySQL 访问被拒绝(使用密码:NO 或 YES)?

为什么用户'root@localhost”的 MySQL 访问被拒绝(使用密码:NO 或 YES)?

DDD
DDD原创
2024-12-22 12:10:45526浏览

Why Is MySQL Access Denied for User 'root@localhost' (Using Password: NO or YES)?

MySQL 错误:用户“root@localhost”访问被拒绝(使用密码:否)

问题:

尝试在 Windows 桌面上运行 WordPress 时,需要 MySQL。然而,如果在安装过程中没有设置 root 密码,WordPress 会在安装时要求输入 root 密码。尝试使用默认密码或没有密码使用 mysql -u root -p 访问 MySQL 会导致访问被拒绝。

潜在解决方案:

用户可能不会在安装过程中为MySQL设置了root密码。要解决此问题,请按照以下步骤操作:

  1. 停止 MySQL 服务:停止 Windows 服务中的 MySQL 服务。
  2. 打开命令提示符: 打开提升的命令提示符。
  3. 更改目录:导航到 MySQL bin 目录:c:program filesmysqlbin.
  4. 执行命令: 运行以下命令,将“C:root.txt”替换为包含根目录的文件的路径密码(如果有):
mysqld --defaults-file="C:\program files\mysql\mysql server 5.1\my.ini" --init-files=C:\root.txt
  1. 启动 MySQL服务:在Windows服务中重新启动MySQL服务。
  2. 输入密码:在命令提示符中输入mysql -u root -p,出现提示时输入root密码。

更新:

即使执行上述步骤后,访问可能会仍然被拒绝,并显示错误消息:

“用户 'root@localhost' 的访问被拒绝(使用密码:YES)”

其他解决方案:

要修复此错误,请使用以下命令重置 root 用户的密码步骤:

  1. 以安全模式重新启动 MySQL: 停止 MySQL 服务,然后使用 mysqld_safe --skip-grant-tables &.
  2. 连接MySQL:输入MySQL命令提示符:mysql -u root.
  3. 重置密码:使用以下命令重置密码:
mysql> use mysql;
mysql> truncate table user;
mysql> flush privileges;
mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
mysql> quit;
  1. 正常重启 MySQL: 杀死mysqld_safe进程和MySQL进程,然后正常启动MySQL
  2. 测试访问: 使用步骤 3 中设置的 root 密码连接到 MySQL,例如 mysql -u root -pYourNewPassword。现在应该已授予访问权限。

以上是为什么用户'root@localhost”的 MySQL 访问被拒绝(使用密码:NO 或 YES)?的详细内容。更多信息请关注PHP中文网其他相关文章!

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