ssm中,使用Druid连接池来连接mysql数据库报错

ssm中,使用Druid连接池来连接mysql数据库报错

2020-10-05 20:34:29,510 [Druid-ConnectionPool-Create-1383178166] [com.alibaba.druid.pool.DruidDataSource]-[ERROR] create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/ssm?serverTimezone=Asia/Shanghai&characterEncoding=utf8, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user ‘皮乾å�¤’@‘localhost’ (using password: YES)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1513)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1578)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2466)

我使用的是mysql8.0版本的数据库,也很懊恼出现了那么多问题。
在其他博客上搜索都说要让你在mysql的my.ini文件中修改添加时间参数之类的,以防止数据库连接超时,还有的是直接让mysql跳出权限设置,我当时也使用了这些方法,但是都没啥子用。我也很纳闷是不是自己的数据库url写错了,我下意识地去看自己地驱动是不是8.0版本,自己地driverClassName是不是没有写成com.mysql.cj.jdbc.Driver。
在排除这些问题之后,我搜索了连接池的属性,看看有没有什么启发
ssm中,使用Druid连接池来连接mysql数据库报错_第1张图片
这里是三大连接池的参数使用,如果不按照规范设置参数名就会出错,所以当时我也是按部就班的把Druid中用户名参数设置成了username,可是容易忽略的是我们自己的电脑系统中也存在着一个username属性,这就在运行工程之中,两者产生了冲突,从而导致以上的错误。最终我把jdbc.properties中的用户名设置成了user,而没有用username
ssm中,使用Druid连接池来连接mysql数据库报错_第2张图片
在spring里边配置数据源时,把属性参数改为${user}就可以了!
ssm中,使用Druid连接池来连接mysql数据库报错_第3张图片
以此就很好的解决了这个问题,实现了ssm的初步整合。

你可能感兴趣的:(mysql,mybatis,jdbc)