Mysql 使用tomcat cluster同时运行两个flyway迁移时,其中一个服务器上的迁移失败
我试图用两个tomcat在集群中运行我的应用程序,当同时启动两个tomcat时,在一个tomcat上的迁移失败。我的spring配置是-Mysql 使用tomcat cluster同时运行两个flyway迁移时,其中一个服务器上的迁移失败,mysql,flyway,Mysql,Flyway,我试图用两个tomcat在集群中运行我的应用程序,当同时启动两个tomcat时,在一个tomcat上的迁移失败。我的spring配置是- <bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate"> <property name="dataSource" ref="dataSource"/> <property name="initOnMigrate" value
<bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate">
<property name="dataSource" ref="dataSource"/>
<property name="initOnMigrate" value="true" />
</bean>
我还将innodb_lock_wait_timeout增加到900,mysql版本为5.6.15
请帮我做这个,日志是-
org.springframework.beans.factory.BeanCreationException:创建名为“flyway”的bean时出错,该bean在类路径资源[spring/db.xml]中定义:调用init方法失败;嵌套异常为com.googlecode.flyway.core.api.FlywayException:无法在元数据表connect\u dev.schema\u version中插入版本“1”的行
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBeanAbstractAutowireCapableBeanFactory.java:1554
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBeanAbstractAutowireCapableBeanFactory.java:539
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanAbstractAutowireCapableBeanFactory.java:475
位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObjectAbstractBeanFactory.java:302
位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingletonDefaultSingletonBeanRegistry.java:228
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBeanAbstractBeanFactory.java:298
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBeanAbstractBeanFactory.java:193
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBeanAbstractBeanFactory.java:292
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBeanAbstractBeanFactory.java:193
位于org.springframework.context.support.AbstractApplicationContext.getBeanAbstractApplicationContext.java:975
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitializationAbstractApplicationContext.java:752
位于org.springframework.context.support.AbstractApplicationContext.refreshAbstractApplicationContext.java:482
位于org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContextContextLoader.java:403
位于org.springframework.web.context.ContextLoader.initWebApplicationContextContextLoader.java:306
位于org.springframework.web.context.ContextLoaderListener.contextInitializedContextLoaderListener.java:106
位于org.apache.catalina.core.StandardContext.listenerStartStandardContext.java:4937
位于org.apache.catalina.core.StandardContext.startInternalStandardContext.java:5434
位于org.apache.catalina.util.LifecycleBase.startIFecyclebase.java:150
位于org.apache.catalina.core.ContainerBase.addChildInternalContainerBase.java:901
位于org.apache.catalina.core.ContainerBase.addChildContainerBase.java:877
位于org.apache.catalina.core.StandardHost.addChildStandardHost.java:633
位于org.apache.catalina.startup.HostConfig.deployDirectoryHostConfig.java:1120
位于org.apache.catalina.startup.HostConfig$DeployDirectory.runHostConfig.java:1678
位于java.util.concurrent.Executors$RunnableAdapter.callExecutors.java:511
位于java.util.concurrent.FutureTask.runFutureTask.java:266
位于java.util.concurrent.ThreadPoolExecutor.runWorkerThreadPoolExecutor.java:1142
位于java.util.concurrent.ThreadPoolExecutor$Worker.runThreadPoolExecutor.java:617
java:745
原因:com.googlecode.flyway.core.api.FlywayException:无法在元数据表connect\u dev.schema\u version中插入版本“1”的行
位于com.googlecode.flyway.core.metadatatable.MetaDataTableImpl.addAppliedMigrationMetaDataTableImpl.java:158
位于com.googlecode.flyway.core.metadatatable.MetaDataTableImpl.addInitMarkerMetaDataTableImpl.java:280
位于com.googlecode.flyway.core.command.DbInit$1.doInTransactionDbInit.java:95
位于com.googlecode.flyway.core.command.DbInit$1.doInTransactionDbInit.java:74
位于com.googlecode.flyway.core.util.jdbc.TransactionTemplate.executeTransactionTemplate.java:72
位于com.googlecode.flyway.core.command.DbInit.initDbInit.java:74
位于com.googlecode.flyway.core.flyway$1.executeFlyway.java:841
位于com.googlecode.flyway.core.flyway$1.executeFlyway.java:819
位于com.googlecode.flyway.core.flyway.executeFlyway.java:1200
位于com.googlecode.flyway.core.flyway.migrateFlyway.java:819
在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法中
位于sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62
在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43
位于java.lang.reflect.Method.invokeMethod.java:483
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.InvokeCustomitMethodAbstractAutoWireCapableBeanFactory.java:1682
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.i
NvokeInitMethodsStractAutoWireAbleBeanFactory.java:1621
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBeanAbstractAutowireCapableBeanFactory.java:1550
... 还有27个
原因:com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException:尝试获取锁时发现死锁;尝试重新启动事务
在sun.reflect.NativeConstructorAccessorImpl.newInstance0Native方法中
位于sun.reflect.NativeConstructorAccessorImpl.newInstanceNativeConstructorAccessorImpl.java:62
在sun.reflect.DelegatingConstructorAccessorImpl.newInstanceDelegatingConstructorAccessorImpl.java:45
位于java.lang.reflect.Constructor.newInstanceConstructor.java:408
位于com.mysql.jdbc.Util.handleNewInstanceUtil.java:406
位于com.mysql.jdbc.Util.getInstanceUtil.java:381
位于com.mysql.jdbc.SQLError.createSQLExceptionSQLError.java:1045
位于com.mysql.jdbc.SQLError.createSQLExceptionSQLError.java:956
在com.mysql.jdbc.MysqlIO.checkErrorPacketMysqlIO.java:3491
在com.mysql.jdbc.MysqlIO.checkErrorPacketMysqlIO.java:3423
在com.mysql.jdbc.MysqlIO.sendCommandMysqlIO.java:1936
位于com.mysql.jdbc.MysqlIO.sqlQueryDirectMysqlIO.java:2060
位于com.mysql.jdbc.ConnectionImpl.execSQLConnectionImpl.java:2542
位于com.mysql.jdbc.PreparedStatement.executeInternalPreparedStatement.java:1734
位于com.mysql.jdbc.PreparedStatement.executeUpdatePreparedStatement.java:2019
位于com.mysql.jdbc.PreparedStatement.executeUpdatePreparedStatement.java:1937
在com.mysql.jdbc.PreparedStatement.executeUpdatePreparedStatement.java:1922在Spring数据源中配置maxWait值,看看这是否改变了情况。请升级到Flyway 3.0并重试。如果问题仍然存在,请使用两个节点的调试日志在GitHub上提交问题。