mysql readfully_mysql-飞行中的连接超时

我正在使用flyway 1.5和mysql Ver 14.14 Distrib 5.1.52,对于使用readline 5.1的unknown-linux-gnu(x86_64)

我编写了以下迁移:

alter table table1 add column col_11 blob;

alter table table1 add column col_12 varchar(255) DEFAULT NULL;

alter table table2 add column col_21 blob;

alter table table2 add column col_22 varchar(255) DEFAULT NULL;

其中table1小,而table2有283,018行.

迁移成功(列同时添加到table1和table2中),但是版本更新失败(我得到com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许进行任何操作.).

我的my.cnf文件包含下一行wait_timeout = 30,我认为发生的事情是将这两列添加到table2中所花的时间比wait_timout多-这“使迁移”失败了-现在,我遇到了这种情况:迁移成功了,但是版本未更新.但是然后我运行了这个SQL查询:

show variables like "%timeout%";

并得到了:

+----------------------------+-------+

| Variable_name | Value |

+----------------------------+-------+

| connect_timeout | 10 |

| delayed_insert_timeout | 300 |

| innodb_lock_wait_timeout | 50 |

| innodb_rollback_on_timeout | OFF |

| interactive_timeout | 28800 |

| net_read_timeout | 30 |

| net_write_timeout | 60 |

| slave_net_timeout | 3600 |

| table_lock_wait_timeout | 50 |

| wait_timeout | 28800 |

+----------------------------+-------+

这表明wait_timeout大约是8小时…

所以我的问题是为什么此连接超时发生?

主要-我该如何解决?

编辑:

应用程序和数据库都在同一台计算机上.

这是完整的堆栈跟踪:

Current schema version: 12.9.3

Migrating to version 12.9.3.1

Error while extracting database product name - falling back to empty error codes

org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:296)

at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:320)

at org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes(SQLErrorCodesFactory.java:216)

at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:140)

at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.(SQLErrorCodeSQLExceptionTranslator.java:103)

at org.springframework.jdbc.support.JdbcAccessor.getExceptionTranslator(JdbcAccessor.java:99)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407)

at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:522)

at com.googlecode.flyway.core.metadatatable.MetaDataTable.insert(MetaDataTable.java:149)

at com.googlecode.flyway.core.migration.DbMigrator.applyMigration(DbMigrator.java:248)

at com.googlecode.flyway.core.migration.DbMigrator$1.doInTransaction(DbMigrator.java:148)

at com.googlecode.flyway.core.migration.DbMigrator$1.doInTransaction(DbMigrator.java:114)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)

at com.googlecode.flyway.core.migration.DbMigrator.migrate(DbMigrator.java:113)

at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:619)

at com.googlecode.flyway.commandline.Main.main(Main.java:79)

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:532)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)

at com.mysql.jdbc.Util.getInstance(Util.java:386)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)

at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1205)

at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1197)

at com.mysql.jdbc.ConnectionImpl.getMetaData(ConnectionImpl.java:3061)

at com.mysql.jdbc.ConnectionImpl.getMetaData(ConnectionImpl.java:3056)

at org.springfra

mework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:285)

... 15 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 654,699 milliseconds ago. The last packet sent successfully to the server was 17 milliseconds ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:532)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3102)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2618)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1749)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1666)

at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:512)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:396)

... 9 more

Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2552)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)

... 18 more

Application exception overridden by rollback exception

org.springframework.dao.RecoverableDataAccessException: StatementCallback; SQL [UPDATE schema_version SET current_version=0]; Communications link failure

The last packet successfully received from the server was 654,699 milliseconds ago. The last packet sent successfully to the server was 17 milliseconds ago.; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 654,699 milliseconds ago. The last packet sent successfully to the server was 17 milliseconds ago.

at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:97)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407)

at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:522)

at com.googlecode.flyway.core.metadatatable.MetaDataTable.insert(MetaDataTable.java:149)

at com.googlecode.flyway.core.migration.DbMigrator.applyMigration(DbMigrator.java:248)

at com.googlecode.flyway.core.migration.DbMigrator$1.doInTransaction(DbMigrator.java:148)

at com.googlecode.flyway.core.migration.DbMigrator$1.doInTransaction(DbMigrator.java:114)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)

at com.googlecode.flyway.core.migration.DbMigrator.migrate(DbMigrator.java:113)

at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:619)

at com.googlecode.flyway.commandline.Main.main(Main.java:79)

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 654,699 milliseconds ago. The last packet sent successfully to the server was 17 milliseconds ago.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:532)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3102)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2618)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1749)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1666)

at org.springframework.jdbc.core.JdbcTemplate$1UpdateStatementCallback.doInStatement(JdbcTemplate.java:512)

at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:396)

... 9 more

Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2552)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)

... 18 more

FlywayException: Migration failed !

Occured in com.googlecode.flyway.core.migration.DbMigrator in method migrate, line number 164

Caused by java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

Occured in com.mysql.jdbc.MysqlIO in method readFully, line number 2552

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值