我用java写的一个线程,每5分钟定期写mysql,但为什么connection到8小时仍然会被close?

解决方案 »

  1.   

    Java 程序有没有捕获到什么错误呢? 应该是程序耗尽资源出现异常造成的。
      

  2.   

    增加wait_timeout  inactive_time 的时间。
      

  3.   

    使用连接池 or if(conn.isclose()) connect again
    既然8小时断开,增加timeout是没用的,迟早要断。
      

  4.   

    三楼的方法比较常用。 既然隔5分钟不如,每次都进行connection的打开和关闭,反而可靠。
      

  5.   

    Java 程序之前有没有捕获到任何错误,只是每8小时会出现一次connection closed,当然要判断并不难,只是我觉得奇怪的是明明在不停地写,为什么还会出现wait_timeout.
    非常感谢各位回答,可惜初来乍到没分送上。
      

  6.   

    By default, the server closes the connection after 8 hours if nothing has happened. You can change the time limit by setting the wait_timeout variable when you start mysqld.
    You can change the time limit by setting the wait_timeout variable when you start mysqld via your server's /etc/my.cnf as well.
      

  7.   

    MYSQL版本?插入的内容有多大?
      

  8.   

    是不是可能有以下情况?主线程建立一个连接, 什么都没做
    每5分种 定期写mysql时, 重新建立一个连接, 写完后 关闭连接
      

  9.   

    Java 程序之前有没有捕获到任何错误。
    每8小时会捕获一次connection closed。
    我并不想知道该怎么做,我只是我觉得奇怪的是明明在不停地写,每分钟都会有数据写入mysql的,但为什么还会出现wait_timeout. 
      

  10.   

    show processlist
    看一下连接,里面有IDLE的时间我想大概就是打开多连接的问题了.
      

  11.   

    我觉得是打开了很多的数据库联接,导致资源耗尽,你可以看下建立sql链接的语句的位置