ERROR 2006 (HY000) at line ***: MySQL server has gone away 对策

原因分析:
1.执行批量的MYSQL语句,例如备份恢复的时候,时间过长。
对应:修改my.cnf中的wait_timeout和interactive_timeout变量
在一些不便修改的情形下,如租用的空间,可以采取sql语句修改,如何做呢?

#对当前交互链接有效;
mysql>set wait_timeout = someIntValue;
#对后续起的交互链接有效;
mysql>set interactive_timeout = someIntValue;



当然此处也可进行一些变量的设定
我们应当保持良好的习惯,操作完毕后 恢复原值。

2.SQL语句过大或者语句中含有BLOB类似字段
对应:修改my.cnf中的[b][color=red]max_allowed_packet[/color][/b]变量

对应于windows是my.ini 一般在mysql的安装目录下,改正完毕后都不要忘记对mysql服务进行重启。
以上变量的位置是在[mysqld]下面,而不是在[mysql]下面

除此之外,可能还有一些别的buffer_size的变量会影响到,也值得注意
例如
read_buffer_size
read_rnd_buffer_size
等等

我目前遇见的问题主要是blob的size问题,可能数据量的大小还不足与导致超时。

至于这些时间限制的默认参数是多少(有时候并不写明在my.cnf中),可通过以下查看:
mysql> show variables like '%timeout'
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| connect_timeout | 5 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 28800 |
+--------------------------+-------+

时间单位是秒 :-)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值