【已解决】java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
报错解释:
这个错误表明你尝试使用用户名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)没有被阻塞。
评论已关闭