1

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

どんなアイデアでも大歓迎です。

4

1 に答える 1

2

RUN@Cloud コンテナーの外部から CloudBees JDBC ドライバーを使用することはできませんが、RUN@Cloud Web コンソールで DB リソース用に見つけることができるホスト名とポートを使用して、RUN データベースで標準の MySQL JDBC ドライバーを使用できます。

于 2012-09-12T10:10:54.637 に答える