【已解决】java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
warning:
这篇文章距离上次修改已过430天,其中的内容可能已经有所变动。
报错解释:
这个错误表明你尝试使用用户名root从localhost连接到MySQL数据库时,权限被拒绝。这通常发生在以下几种情况:
- 用户名或密码不正确。
root用户没有从localhost访问数据库的权限。- MySQL服务没有运行。
解决方法:
- 确认你的用户名和密码是正确的。
- 如果你刚安装了MySQL,可能需要运行
mysql_secure_installation脚本来设置root用户密码。 登录MySQL控制台,使用
mysql -u root -p命令,然后输入密码,并检查用户权限表:SELECT host, user, authentication_string FROM mysql.user WHERE user = 'root';确保
root用户有从localhost访问的权限。如果权限表中缺少相应条目,你可以给
root用户授权,例如:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION; FLUSH PRIVILEGES;替换
your_password为你的实际root密码。- 确认MySQL服务正在运行。在Linux系统中,你可以使用
systemctl status mysql或service mysql status命令。 - 如果你更改了MySQL的监听配置,确保
localhost指向127.0.0.1。
如果以上步骤不能解决问题,请检查防火墙设置,确保MySQL的端口(默认是3306)没有被阻塞。
评论已关闭