You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:20:32