Spring Boot项目MySQL数据库连接权限异常求助
问题排查:Spring Boot无法连接MySQL,提示权限拒绝(using password: NO)
核心问题定位
从异常信息 java.sql.SQLException: Access denied for user 'MyUserName'@'localhost' (using password: NO) 能直接看出:应用连接MySQL时没有使用你配置的密码,甚至连用户名都不是你设置的root,而是默认的MyUserName——这说明Spring Boot根本没正确读取到application.properties里的数据库认证配置。
直接修复方案
检查你的application.properties文件,发现两处拼写错误:
spring.datasourse.username=root spring.datasourse.password=root
这里的datasourse少写了一个字母c,正确的配置项应该是datasource,修正后:
spring.datasource.username=root spring.datasource.password=root
额外优化建议
除了核心拼写错误,还有几个可以优化的配置点:
- 修正Hibernate配置拼写:
spring.jpa.hibernate.dll-auto=update应该是spring.jpa.hibernate.ddl-auto=update(dll→ddl,是Data Definition Language的缩写) - MySQL 8.0+版本推荐使用对应方言:
org.hibernate.dialect.MySQL8Dialect替代org.hibernate.dialect.MySQLDialect - 可以移除
spring.datasource.driver-class-name,Spring Boot会根据URL自动识别驱动类 - 本地开发时建议把
useSSL=true改成useSSL=false,避免证书警告
修正后的完整application.properties示例:
spring.jpa.hibernate.ddl-auto=update spring.datasource.url=jdbc:mysql://localhost:3306/classroom?useUnicode=true&useSSL=false&serverTimezone=UTC spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect spring.datasource.username=root spring.datasource.password=root
后续排查(如果修正后仍有问题)
- 确认MySQL服务正在运行,端口3306正常监听
- 用命令行验证
root用户权限:执行mysql -uroot -proot,看能否正常登录 - 检查是否有其他环境配置文件(如
application-dev.properties)覆盖了主配置的数据库信息 - 清理Gradle构建缓存,重新构建项目:执行
./gradlew clean build
内容的提问来源于stack exchange,提问作者Bohdan
相关产品推荐
相关产品推荐

