java.sql.SQLException: Access denied for user 'Jeb'@'localhost' ------SpringCloud学习笔记(三)

10-Mar-2020 18:13:25.205 信息 [http-nio-8081-exec-5] com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource. Initializing c3p0 pool… com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hge160a81id4td61839wqm|b53796, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.cj.jdbc.Driver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, forceUseNamedDriverClass -> false, identityToken -> 1hge160a81id4td61839wqm|b53796, idleConnectionTestPeriod -> 60, initialPoolSize -> 1, jdbcUrl -> jdbc:mysql://127.0.0.1:3306/wxmall?useUnicode=true&characterEncoding=UTF-8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 60, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 10, maxStatements -> 100, maxStatementsPerConnection -> 0, minPoolSize -> 1, numHelperThreads -> 10, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ]
10-Mar-2020 18:13:56.042 警告 [C3P0PooledConnectionPoolManager[identityToken->1hge160a81id4td61839wqm|b53796]-HelperThread-#4] com.mchange.v2.resourcepool.BasicResourcePool. com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@9375f4 – Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception:
java.sql.SQLException: Access denied for user ‘Jeb’@‘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:836)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:197)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1127)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1114)
at com.mchange.v2.resourcepool.BasicResourcePool.access 800 ( B a s i c R e s o u r c e P o o l . j a v a : 44 ) a t c o m . m c h a n g e . v 2. r e s o u r c e p o o l . B a s i c R e s o u r c e P o o l 800(BasicResourcePool.java:44) at com.mchange.v2.resourcepool.BasicResourcePool 800(BasicResourcePool.java:44)atcom.mchange.v2.resourcepool.BasicResourcePoolScatteredAcquireTask.run(BasicResourcePool.java:1855)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)

我的jdbc.properties文件中配置如下:

driver=com.mysql.cj.Driver
url=jdbc:mysql://127.0.0.1:3306/wxmall?useUnicode=true&characterEncoding=UTF-8
userName=root
password=root

c3p0.initialPoolSize=1
c3p0.minPoolSize=1
c3p0.maxPoolSize=10
c3p0.acquireIncrement=5
c3p0.maxIdleTime=60
c3p0.idleConnectionTestPeriod=60
c3p0.acquireRetryAttempts=30
c3p0.maxStatements=100
c3p0.numHelperThreads=10

对应的DataSource配置如下:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="${driver}"/>
        <property name="jdbcUrl" value="${url}"/>
        <property name="user" value="${userName}"/>
        <property name="password" value="${password}"/>
        <property name="initialPoolSize" value="${c3p0.initialPoolSize}"/>
        <property name="minPoolSize" value="${c3p0.minPoolSize}"/>
        <property name="maxPoolSize" value="${c3p0.maxPoolSize}"/>
        <property name="acquireIncrement" value="${c3p0.acquireIncrement}"/>
        <property name="maxIdleTime" value="${c3p0.maxIdleTime}"/>
        <property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}"/>
        <property name="acquireRetryAttempts" value="${c3p0.acquireRetryAttempts}"/>
        <property name="maxStatements" value="${c3p0.maxStatements}"/>
        <property name="numHelperThreads" value="${c3p0.numHelperThreads}"/>
    </bean>

从报错来看,应该DataSource在Bean实例化时,用户名使用了主机名“Jeb”,而不是我配置的“root”.也就是配置的userName未生效,程序使用了系统变量中的userName。
将jdbc.properties和xml文件中的DataSourceBean对应修改(添加前缀)后成功访问数据库,修改如下:
jdbc.properties文件:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/wxmall?useUnicode=true&characterEncoding=UTF-8
jdbc.userName=root
jdbc.password=root

jdbc.c3p0.initialPoolSize=1
jdbc.c3p0.minPoolSize=1
jdbc.c3p0.maxPoolSize=10
jdbc.c3p0.acquireIncrement=5
jdbc.c3p0.maxIdleTime=60
jdbc.c3p0.idleConnectionTestPeriod=60
jdbc.c3p0.acquireRetryAttempts=30
jdbc.c3p0.maxStatements=100
jdbc.c3p0.numHelperThreads=10

DataSource bean配置如下:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.userName}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="initialPoolSize" value="${jdbc.c3p0.initialPoolSize}"/>
        <property name="minPoolSize" value="${jdbc.c3p0.minPoolSize}"/>
        <property name="maxPoolSize" value="${jdbc.c3p0.maxPoolSize}"/>
        <property name="acquireIncrement" value="${jdbc.c3p0.acquireIncrement}"/>
        <property name="maxIdleTime" value="${jdbc.c3p0.maxIdleTime}"/>
        <property name="idleConnectionTestPeriod" value="${jdbc.c3p0.idleConnectionTestPeriod}"/>
        <property name="acquireRetryAttempts" value="${jdbc.c3p0.acquireRetryAttempts}"/>
        <property name="maxStatements" value="${jdbc.c3p0.maxStatements}"/>
        <property name="numHelperThreads" value="${jdbc.c3p0.numHelperThreads}"/>
    </bean>

总结:配置jdbc属性时添加jdbc前缀,避免出现与其他变量名冲突的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JebWoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值