2012-09-11 40 views
1

我无法弄清楚如何在Jenkins CloudBees中运行时访问MySQL数据库。我曾尝试以下的[email protected] MySQL,但也有很多在控制台输出警告我必须处理本地主机访问与插座,这是非常不靠谱的命令行调试。如何从CloudBees Jenkins访问MySQL?

是否有使用MySQL的CloudBees的托管方式?当我尝试使用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 

任何想法,将不胜感激:

不幸的是,当试图连接我得到这个错误。

+0

我不知道你在CloudBees的JDBC驱动程序的意思。你应该能够使用MySQL jdbc驱动程序,并且一切都应该正常工作。 – recampbell

+0

我想他是指仅在RUN @ cloud中工作的“特殊”jdbc URL格式。他需要构建带有数据库服务器主机名 –

回答

2

不能使用CloudBees的JDBC驱动程序从RUN @云容器外,但你可以使用使用主机名和端口的运行数据库中的标准MySQL JDBC驱动程序,你可以找到RUN @云端虚拟控制台上您的数据库资源。

+0

的MySQL URL,我想到了这一点。这可能是我自己的无知,但是我们不会冒AWS关闭我们的服务器并将其移动到另一个位置的风险吗?这不会导致手动配置头痛吗? – JBCP

+0

我想这个解决办法,但我不断收到此错误:“致:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:用户已经放心具有比‘MAX_USER_CONNECTIONS’活动连接更多”。我不认为这是我身边的代码问题,测试在本地运行良好。 – JBCP

+2

您的数据库被固定到CloudBees上的IP地址,因此即使服务器实例发生更改,您连接到它的方式也会相同。 活动连接是一个独立的问题,可能应该在不同的线程讨论。但要回答,您在共享数据库配置上限制为20个连接。如果您需要更多连接,请联系[email protected]以升级到专用服务器配置。 – swashbuck1r