概述
为了存储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'
为了这种无聊的问题,查了这么久,真的很不值得。
最后
以上就是开放冬天为你收集整理的Spring Boot启动报Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using pas的全部内容,希望文章能够帮你解决Spring Boot启动报Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using pas所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复