JAVA连接数据库Access denied for user 'root'@'localhost' (using password: YES)
时间: 2023-09-25 17:11:03 浏览: 95
对应的异常是"java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)",这个异常表示用户使用密码访问数据库时被拒绝了。决这个问题的思路是首先检查密码是否错误,然后再检查是否给用户分配了足够的权限。
以下是解决这个问题的步骤:
1. 检查在Springboot的配置文件中,确认数据库连接的用户名和密码是否正确配置。
2. 打开MySQL的命令行窗口,并使用密码登录。如果成功登录,那么说明密码是正确的,并且问题可能出现在权限上。
3. 如果密码错误,可以尝试重设密码。在MySQL的命令行窗口中,切换到mysql数据库:`use mysql`。然后执行以下命令重设密码:
- 对于MySQL 5.7版本及以上:`update mysql.user set authentication_string=PASSWORD('新密码') where User='root';`
- 对于MySQL 5.6版本及以下:`update mysql.user set password=PASSWORD('新密码') where User='root';`
其中,'新密码'是你想要设置的新密码。
4. 如果密码正确,但问题仍然存在,那么可能是因为数据库没有给用户分配足够的权限。可以使用以下SQL语句来提升root用户的权限:
`GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'root';`
这会授予root用户在本地主机上对所有数据库的完全权限。
5. 重启MySQL服务。在“此电脑”中右键点击管理,然后选择“应用于服务”,找到MySQL进程,右键点击重启即可。
6. 重新访问数据库,应该能够成功连接数据库了。
通过以上步骤,你应该能够解决"Access denied for user 'root'@'localhost' (using password: YES)"的问题。
阅读全文