..............
STACKTRACE:
java.io.EOFException:Can not read response from server. Expected to read 111 bytes ,read 16 bytes before connection
......Last packet sent to the server was 2111119 ms ago.
....分批读取数据,
读取最后一批数据之前做了些合并操作,时间消耗大概5-10分钟。网上说是MYsql连接的8小时后自动关闭,但是这个时间明显是很短啊,不应该关闭连接。网上找了好多方法,开始是用jdbc,后来使用DBCP,pool都是这样,请大家给我出出主意,困扰已久了。JDBC-mysql:
String urlDB = "jdbc:mysql://127.0.0.1/epsb?autoReconnect=true&user=ryu&password=8*****" +
"&characterEncoding=utf-8";Class.forName("com.mysql.jdbc.Driver").newInstance();
this.conn = DriverManager.getConnection(urlDB);使用dbcp:try { 
Properties p = new Properties(); 
p.setProperty("driverClassName", "com.mysql.jdbc.Driver"); 
p.setProperty("url", "jdbc:mysql://127.0.0.1/esb?autoReconnect=true"); 
p.setProperty("password", "85TIANJIAOyinmi"); 
p.setProperty("username", "root"); 
BasicDataSource dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(p);  if (dataSource != null) { 
this.conn = dataSource.getConnection(); 
}

解决方案 »

  1.   

    是不是传的SQL语句太长了?看一下下面这个参数是多少?mysql> show variables like 'max_allowed_packet';
    +--------------------+---------+
    | Variable_name      | Value   |
    +--------------------+---------+
    | max_allowed_packet | 1048576 |
    +--------------------+---------+
    1 row in set (0.00 sec)mysql>建议再查一下MySQL的日志中有些什么错误信息。
      

  2.   

    不是在TOMCAT中,
    是在单独的JAVA项目中。
      

  3.   

    按照记录总数查询,
    120W,分12批,最后一批出现连接断掉的问题。
    使用LIMIT,或ID bettween,都不行。