【MySQL】Windows上MySQL登录时出现“Access denied for user ‘root‘@‘localhost‘ (using password: YES)”拒绝访的解决方法
warning:
这篇文章距离上次修改已过190天,其中的内容可能已经有所变动。
报错解释:
这个错误表明你在尝试使用root用户登录MySQL数据库时,由于某种原因被拒绝访问。可能的原因包括:
- MySQL服务未运行。
- root用户的密码不正确。
- 用户root没有从localhost登录的权限。
- 你可能正在使用的MySQL版本对root的访问有特殊的安全策略。
解决方法:
- 确保MySQL服务正在运行。你可以在Windows服务管理器中查找MySQL服务并启动它。
- 如果忘记了root密码,你可以通过停止MySQL服务,以--skip-grant-tables模式启动MySQL服务器来重置密码。
- 登录MySQL数据库,查看root用户的权限并确保它允许从localhost登录。
- 如果你使用的是MySQL 5.7或更新版本,可能需要清除密码并设置一个新的,因为默认的密码认证插件可能需要更强的密码。
具体步骤可能包括:
- 打开命令提示符或PowerShell。
- 输入
net start
命令查看服务列表,确认MySQL服务是否在列表中。 - 如果MySQL服务未运行,使用
net start mysql
启动服务。 如果忘记密码,停止MySQL服务,然后以--skip-grant-tables模式启动它:
mysqld --skip-grant-tables
登录到MySQL,查看用户权限:
mysql -u root -p FLUSH PRIVILEGES; SELECT host, user, authentication_string FROM mysql.user WHERE user = 'root';
如果需要,更新root用户的登录权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'NewPassword' WITH GRANT OPTION;
- 重新启动MySQL服务,并使用新密码尝试登录。
请根据你的MySQL版本和具体情况调整上述步骤。如果问题依然存在,请检查MySQL的错误日志以获取更详细的信息。
评论已关闭