MySQL error 2013: Lost connection to MySQL server during query
程序中碰到这个错误,网络上搜索的结果说需要把 wait_timeout 和 max_allowed_packet 这两个值调大一点。
wait_timeout 需要和 interactive_timeout 共同调整,才能起作用,我查看了一下 mysql 中它们的默认值为 28800,即 8 个小时,已经够大了,没做修改。
我数据库操作中的数据量也不大,所以也没有修改 max_allowed_packet 的值。
又看到有网友说需要调整 net_read_timeout 和 net_write_timeout 两个值,考虑到我有多个线程一直在往数据库中写入数据,估计可能是读取、写入超时,
所以分别把 net_read_timeout 和 net_write_timeout 的值从 30 秒改到 60 秒,和从 60 秒改到 120 秒。
完成之后重启 mysql 服务,启动程序,发现程序仍然会挂掉,但是运行的时间已经比原来长了好多。
于是又把程序中的线程数量减少到原来的一半,并把线程工作的定时器时间间隔调整到原来的 1.5 倍,重新编译,启动程序,运行了 13 个小时,依然正常。
到此,这个问题算是暂时解决。