Spring Boot启动报Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using pas

为了存储emoji,将原本旧版本的mysql卸载了,重新装新版mysql,结果数据库安装调试好了之后,突然发现之前的Spring Boot项目启动报错了。错误如下:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_111]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_111]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_111]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_111]
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.46.jar:5.1.46]
	at com.mysql.jdbc.Util.getInstance(Util.java:408) ~[mysql-connector-java-5.1.46.jar:5.1.46]
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) ~[mysql-connector-java-5.1.46.jar:5.1.46]
...

...
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965) ~[mysql-connector-java-5.1.46.jar:5.1.46]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976) ~[mysql-connector-java-5.1.46.jar:5.1.46]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912) ~[mysql-connector-java-5.1.46.jar:5.1.46]

很明显,是登录数据库出问题导致的。然而一开始并没有想到是项目的问题,因为之前一直用着,就去查数据库相关,发现网上说的那些我早就调试过了。因为Navicat能连接,所以我又试着用jdbc连接,都没问题。于是我又以为是用了Druid这个连接池的问题,发现也没有做加密,而且去掉用户名和密码的参数,直接将用户名和密码写在连接串里,就能正常连接。于是怀疑是这个配置参数出了问题,就在配置类里做了@Value注入配置参数的打印,终于发现问题了。

 

我yml的配置是这样的,密码是纯数字。

url: jdbc:mysql://localhost:3306/zztyyh?useUnicode=true&characterEncoding=UTF8&useSSL=false&autoReconnect=true
username: root
password: 0112

而打印出来的@Value拿到的却是不一样的数字。

 

答案已经很明显,至于为什么突然会这样我也不清楚,之前都这样用得好好的,所以只能做以下修改来解决。当然,这只是我自己电脑的库,生产用的密码还是很复杂的,带字母带符号,就算不这样修改也能正常被@Value拿到。

url: jdbc:mysql://localhost:3306/zztyyh?useUnicode=true&characterEncoding=UTF8&useSSL=false&autoReconnect=true
username: root
password: '0112'

 

为了这种无聊的问题,查了这么久,真的很不值得。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值