SpringBoot报1045 Access denied?先用Navicat验证账号密码

发布时间:2026/10/29 2:17:17
SpringBoot报1045 Access denied?先用Navicat验证账号密码

SpringBoot报1045 Access denied?先用Navicat验证账号密码

项目登录时控制台报1045 Access denied,意思很直白:数据库拒绝了你的登录。

先说原理:MySQL是怎么把你拒掉的

连数据库时,客户端把用户名和密码发给服务器,服务器拿去和mysql.user表里的记录比对,对不上就回一句 1045。所以看到 1045 时,数据库服务本身是好的——它收到了你的请求,只是把你拒了。这一点和"连接失败、Connection refused"(服务没启动)是完全不同的两个病。

报错里还有一个细节:(using password: YES)。YES 表示"密码带了,但不认";如果显示(using password: NO),说明密码压根没传过去——去检查 yml 里 password 是不是漏写了、或者字段名拼错了。

常见原因

  1. yml 里账号密码抄错了(最常见);
  2. MySQL 的密码改过(比如装环境时设过新密码),但项目配置没同步;
  3. yml 里漏写 password 字段(对应上面的 using password: NO)。

排查方法:用 Navicat 做"变量隔离"

排查就一步:拿同样的账号密码,用 Navicat 登录一次。

这个方法的好处是把两个变量拆开分别验证:

  • Navicat 都登不上→ 说明账号密码本身有问题,跟项目配置无关,别再改 yml 了;
  • Navicat 能登、项目却报 1045→ 账号密码是对的,问题一定出在配置文件——顺便检查 yml 的缩进,冒号后面要有空格(YAML 语法,缺空格会导致配置读不到)。

改对之后重启项目,连接成功,页面正常登录。

总结

报 1045,排查顺序就一条:先拿 Navicat 验账号密码,再查配置。顺序反了,容易对着没问题的配置瞎折腾一晚上。

需要SpringBoot管理系统源码、SQL脚本、部署文档做学习参考,可以私信联系。项目仅作为编程学习、课程设计参考素材,不代写论文。