【发布时间】:2012-09-04 22:31:24
【问题描述】:
在 Jenkins CloudBees 中运行时,我无法弄清楚如何访问 MySQL 数据库。我试过关注Dev@Cloud MySQL,但控制台输出中有很多警告,我必须处理本地主机访问与套接字,如果没有命令行,调试起来非常棘手。
有没有办法使用 CloudBees MySQL 托管?当我尝试使用 cloudbees JDBC 驱动程序时,我收到 ClassNotFound 错误消息。
更新:下面的答案澄清了我不能使用 CloudBees 驱动程序,所以我现在通过 c3p0 连接池使用常规 MySQL 连接器。根据下面的 cmets,我将池中的连接数限制为 10。
当我从我的开发计算机运行它并连接到 Cloudbees Mysql 实例时,完全相同的配置和 Maven 命令行可以工作。
很遗憾,我在尝试连接时收到此错误:
Caused by: com.googlecode.flyway.core.exception.FlywayException: Unable to obtain Jdbc connection from DataSource
at com.googlecode.flyway.core.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:56)
at com.googlecode.flyway.core.Flyway.execute(Flyway.java:864)
at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:591)
at com.assuredlabor.db.DatabaseMigrator.migrate(DatabaseMigrator.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 62 more
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at com.googlecode.flyway.core.util.jdbc.JdbcUtils.openConnection(JdbcUtils.java:50)
... 72 more
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
... 74 more
任何想法都将不胜感激。
【问题讨论】:
-
我不确定您所说的 CloudBees JDBC 驱动程序是什么意思。您应该能够使用 MySQL jdbc 驱动程序,并且一切都应该正常工作。
-
我认为他指的是仅在 RUN@cloud 中有效的“特殊”jdbc URL 格式。他需要用 db server 主机名构造 MySQL URL