Quartz/MYSQL资源池无法从其主工厂或源获取资源

Quartz/MYSQL资源池无法从其主工厂或源获取资源,mysql,quartz-scheduler,Mysql,Quartz Scheduler,在尝试将Quartz scheduler集成到spring应用程序中时,我尝试使用org.Quartz.impl.jdbcjobstore.JobStoreTX 使用mysql上的数据存储 org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

在尝试将Quartz scheduler集成到spring应用程序中时,我尝试使用
org.Quartz.impl.jdbcjobstore.JobStoreTX
使用mysql上的数据存储

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties = false

org.quartz.jobStore.dataSource = WDS

org.quartz.jobStore.tablePrefix = QRTZ_

org.quartz.jobStore.dontSetAutoCommitFalse = false
org.quartz.dataSource.WDS.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.WDS.debugUnreturnedConnectionStackTraces = true
org.quartz.dataSource.WDS.URL = jdbc:mysql://url:port/DB?useSSL=true&verifyServerCertificate=false
org.quartz.dataSource.WDS.user = xxx
org.quartz.dataSource.WDS.password = xxx
org.quartz.dataSource.WDS.maxConnections = 4
下面是我得到的错误

原因:com.mchange.v2.resourcepool.CannotAcquireResourceException:资源池无法从其主工厂或源获取资源。 可访问com.mchange.v2.resourcepool.BasicResourcePool.waitAvailable(BasicResourcePool.java:1469) 位于com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:644) 位于com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:554) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutAndMarkConnectionInUse(C3P0PooledConnectionPool.java:758) 在com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:685)

原因:java.sql.SQLException:java.lang.NoSuchMethodError:sun.security.provider.certpath.AlgorithmChecker.(Ljava/security/AlgorithmConstraints;)V
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:877)
位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:873)
位于com.mysql.jdbc.Util.HandleneInstance(Util.java:443)
位于com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)
位于com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
位于com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
在com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
在com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)上
位于com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.AcquisiteSource(C3P0PooledConnectionPool.java:203)
位于com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(basicResourceSourcePool.java:1138)
在com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndedCrementPendingAcquiresWithInLockonSuccess(BasicResourcePool.java:1125)
访问com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
位于com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
位于com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
原因:org.quartz.JobPersistenceException:无法从数据源“WatchdogsDS”获取数据库连接:java.sql.SQLException:无法从基础数据库获取连接! 位于org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:783) 位于org.quartz.impl.jdbcjobstore.JobStoreTX.getNonManagedTXConnection(JobStoreTX.java:71) 位于org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3846) 位于org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:93) 在org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3785)上 位于org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1524) 位于org.quartz.core.QuartzScheduler.getTrigger(QuartzScheduler.java:1499) 位于org.quartz.impl.StdScheduler.getTrigger(StdScheduler.java:508) 位于org.springframework.scheduling.quartz.SchedulerAccessor.addTriggerToScheduler(SchedulerAccessor.java:291) 位于org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers(SchedulerAccessor.java:235) 位于org.springframework.scheduling.quartz.SchedulerFactoryBean.AfterPropertieSet(SchedulerFactoryBean.java:510) 位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) 位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ... 省略29个公共框架


你提到的问题有很多原因。首先检查数据库版本。我对最新版本的mysql(8.0.11)有问题,它默认采用身份验证类型“缓存\u sha2\u密码”

更改为mysql版本5.7解决了我的问题,默认情况下,将身份验证类型设置为“标准”

N.B别忘了添加所需的管理角色和模式特权

Caused by: java.sql.SQLException: java.lang.NoSuchMethodError: sun.security.provider.certpath.AlgorithmChecker.<init>(Ljava/security/AlgorithmConstraints;)V
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:877)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:873)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:443)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
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:203)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)