原因分析:
1.执行批量的MYSQL语句,例如备份恢复的时候,时间过长。
对应:修改my.cnf中的wait_timeout和interactive_timeout变量
在一些不便修改的情形下,如租用的空间,可以采取sql语句修改,如何做呢?
当然此处也可进行一些变量的设定
我们应当保持良好的习惯,操作完毕后 恢复原值。
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中),可通过以下查看:
时间单位是秒 :-)
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 |
+--------------------------+-------+
时间单位是秒 :-)