如何从CloudBees Jenkins访问MySQL?

时间:2012-09-11 23:02:30

标签: mysql jenkins cloudbees

在Jenkins CloudBees中运行时,我无法弄清楚如何访问MySQL数据库。我已经尝试了Dev@Cloud MySQL,但是在控制台输出中有很多警告,我必须处理localhost访问与套接字,这在没有命令行的情况下进行调试非常棘手。

有没有办法使用CloudBees MySQL托管?当我尝试使用cloudbees JDBC驱动程序时,我收到ClassNotFound错误消息。

更新:下面的答案澄清了我无法使用CloudBees驱动程序,因此我现在通过c3p0连接池使用常规MySQL连接器。根据以下评论,我将池中的连接数限制为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

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

您无法在RUN @ Cloud容器外使用CloudBees JDBC驱动程序,但您可以使用RUN数据库中的标准MySQL JDBC驱动程序,使用您可以在RUN @ Cloud Web控制台上找到的主机名和端口数据库资源。