Spring Boot Java连接MySQL报错求助:Access denied权限问题
解决Spring Boot连接MySQL时的Access Denied错误
核心错误信息:
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost'@'localhost' (using password: YES)
这个错误的关键是出现了root@localhost@localhost,说明数据库连接配置存在格式错误,以下是具体排查修复步骤:
1. 修正数据库连接配置文件
检查application.properties或application.yml中的配置项:
- 错误示例(用户名带@localhost):
改成正确的用户名配置:spring.datasource.username=root@localhostspring.datasource.username=root - 验证数据库URL格式:
正确的URL模板:
确保URL中没有多余的spring.datasource.url=jdbc:mysql://localhost:3306/你的数据库名?serverTimezone=UTC&useSSL=false@localhost,端口号(默认3306)、数据库名正确。 - 密码验证:
确认spring.datasource.password与登录MySQL时的密码完全一致,若密码包含特殊字符(比如#、!),在yml配置文件中需要用引号包裹:spring: datasource: password: "your#password"
2. 验证MySQL用户权限
登录本地MySQL控制台执行以下命令:
# 查看root用户的允许连接主机 SELECT user, host FROM mysql.user WHERE user = 'root'; # 刷新权限 FLUSH PRIVILEGES;
如果root用户的host字段是localhost,则只能本地连接,符合当前场景;如果是其他值,可根据需要调整(比如改成%允许远程连接,但本地连接无需修改)。
3. 确认MySQL服务运行状态
- Windows:打开「服务」面板,确认
MySQL服务处于运行状态 - Linux:执行命令
systemctl status mysql检查服务状态
4. 测试基础连接
用MySQL Workbench、Navicat等工具,以root用户+对应密码连接本地MySQL,确认用户密码本身有效,排除MySQL端的问题。
内容的提问来源于stack exchange,提问作者Piyumi Nadeesha
相关产品推荐
相关产品推荐

