因本人项目服务器是在阿里云,DB也是阿里云,有时候需要将数据下载到本地进行模拟生产进行一些操作。但是每次都会报错,而导致失败。从而发现是数据过大和导入超时的问题!
然而现在只要报错就执行下面的语句,一路畅通无阻呀!爽歪歪~~
查询通信缓存区的最大大小,查询之后可进行适量修改
sql show global variables like 'max_allowed_packet';
注:下面这些语句在关闭重启mysql之后就没用了。
SET GLOBAL max_allowed_packet = 1024*1024*16; --(16 可根据数据量进行修改)
SET GLOBAL net_buffer_length = 100000; -- 100000 可调
SET GLOBAL interactive_timeout = 28800000; -- 28800000可调
SET GLOBAL wait_timeout = 28800000 -- 28800000 可调
SET GLOBAL net_read_timeout= 120; -- 120可调
SET GLOBAL net_write_timeout = 900; -- 900可调
============================================================================
以下为永久修改:
超时修改如果需要永久的则需要对my.cnf进行更改。进行这些更改后,必须重新启动MySQL!!!
net_read_timeout = 120
net_write_timeout = 900
因数据量太大进行永久修改,进行这些更改后,必须重新启动MySQL!!!
1、在my.ini(windows下)或者my.cnf(linux下)加入或修改配置:
vi /etc/my.cnf
max_allowed_packet = 16M
max_allowed_packet=16M
2、重启MySQL服务...
附:另外一个问题:[Err] 1067 - Invalid default value for 'date’
vi /etc/my.cnf
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
查看参数作用
max_allowed_packet
net_buffer_length
interactive_timeout
wait_timeout
net_read_timeout
net_write_timeout