ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException

Spring配置druid数据库连接池时报错:

[main] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
[Druid-ConnectionPool-Create-1572127577] ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://localhost:3306/test, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user 'userName'@'127.0.0.1' (using password: YES)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:829)
    at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:449)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:242)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1657)
    at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1723)
    at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2838)

从错误报告中可以发现是用户名不合法而无法登录,但仔细检查配置文件发现没有出错。
数据库连接池配置文件druid.properties为:

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=root

Spring配置文件beans.xml文件为:


        
    

        
        
        
        
    

查阅资料后发现这个问题依然是配置文件中的问题,Spring在读取配置文件时获取了JVM中的部分信息,读取到了用户userName(一般为电脑配置的个人用户名)而非配置的root,所以提示错误Access denied for user 'userName'@'127.0.0.1' (using password: YES)。想要按照配置文件中配置的用户名和密码登录数据库,需要在两个配置文件中加入前缀信息,按照配置信息登录数据库。
修改后的数据库连接池配置文件druid.properties为:

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=mysql

Spring配置文件beans.xml对应修改为:


        
    

        
        
        
        
    

修改后运行错误修复。

你可能感兴趣的:(ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException)