今天遇到一个坑,刚爬出来,填上以惠及他人。
在项目中,连接数据库的时候,报了下面的异常
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)] with root cause
java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4226)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
......
百度这个错误,网上有很多关于修改mysql密码的,还有修改权限的;
但是对我并不适用,我之所以没有照着改,原因有二:
一是因为我安装mysql的时候,就已经可以用root用户名和root密码登陆成功了。
二是因为我本地已经用jdbc连接过mysql,也成功了。
所以现在在项目中连不上,肯定不是数据库密码或权限的问题。(也希望大家不要搜索问题之后盲目跟着修改,还是应该先仔细分析一下,别人的方法 对你适不适用)
经过仔细研究,发现了——
在我的jdbc.properties配置文件中,jdbc.username一行最后有两个空格!!!
其实,仔细一点分析报错信息的话,也应该能看出来的,Access denied for user 'root '@'localhost' ,这句里面的root后面其实是有两个空格的。
总结:properties配置文件,单行末尾千万不要有空格!