mysql出现ERROR : 2006, 'MySQL server has gone away'
2015-07-27 15:36
721 查看
使用Navicat运行SQL文件导入数据库时出现“ MySQL server has gone away”。
原因:SQL语句过大或者语句中含有BLOB或者longblob字段,超出了默认允许最大的数据包。
解决办法:在my.cnf文件中添加以下参数(windows中是my.ini文件)
wait_timeout:服务器关闭非交互连接之前等待活动的秒数。默认值:28800秒(8小时)
interactive_timeout:服务器关闭交互式连接前等待活动的秒数。默认值:28800秒(8小时)
交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议。
非交互式操作:就是你在你的项目中进行程序调用。比如一边是tomcat web服务器,一边是数据库服务器,两者怎么通信?在java web里,我们通常会选择hibernate或者是jdbc来连接。那么这时候就是非交互式操作。
在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。
如果这个值过大的话,很可能会造成大量的无用的闲置的连接存在,对数据库压力过大;如果设置的小,会增加系统服务器的业务压力。所以,设置为多大,得根据你的服务器的压力大小来配置的,可不是随便写一个数就行了的。
查看数据库的超时值,如下
取值范围是1-2147483(Windows),1-31536000(linux)
例如设置
interactive_timeout=31536000
无论超过最大限度多大的数值,在windows中只能被MySQL解析为2147483(约24.85天),2147483秒后你的程序该出什么错还是什么错,避免不了。
max_allowed_packet:包或任何生成的中间字符串的最大大小。包消息缓冲区初始化为net_buffer_length字节,需要时可以增加到max_allowed_packet的大小。
如果表中包含BLOB列或长字符串,就必须增加该值。
查看目前配置
修改方法
在my.cnf文件中增加如下参数(windows中是my.ini文件)
或者在mysql 命令行中运行
原因:SQL语句过大或者语句中含有BLOB或者longblob字段,超出了默认允许最大的数据包。
解决办法:在my.cnf文件中添加以下参数(windows中是my.ini文件)
wait_timeout=2880000 interactive_timeout = 2880000 max_allowed_packet = 10M
wait_timeout:服务器关闭非交互连接之前等待活动的秒数。默认值:28800秒(8小时)
interactive_timeout:服务器关闭交互式连接前等待活动的秒数。默认值:28800秒(8小时)
交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议。
非交互式操作:就是你在你的项目中进行程序调用。比如一边是tomcat web服务器,一边是数据库服务器,两者怎么通信?在java web里,我们通常会选择hibernate或者是jdbc来连接。那么这时候就是非交互式操作。
在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义)。
如果这个值过大的话,很可能会造成大量的无用的闲置的连接存在,对数据库压力过大;如果设置的小,会增加系统服务器的业务压力。所以,设置为多大,得根据你的服务器的压力大小来配置的,可不是随便写一个数就行了的。
查看数据库的超时值,如下
show global variables like '%timeout';
取值范围是1-2147483(Windows),1-31536000(linux)
例如设置
interactive_timeout=31536000
无论超过最大限度多大的数值,在windows中只能被MySQL解析为2147483(约24.85天),2147483秒后你的程序该出什么错还是什么错,避免不了。
max_allowed_packet:包或任何生成的中间字符串的最大大小。包消息缓冲区初始化为net_buffer_length字节,需要时可以增加到max_allowed_packet的大小。
如果表中包含BLOB列或长字符串,就必须增加该值。
查看目前配置
show VARIABLES like '%max_allowed_packet%';
修改方法
在my.cnf文件中增加如下参数(windows中是my.ini文件)
max_allowed_packet = 10M
或者在mysql 命令行中运行
set global max_allowed_packet = 2*1024*1024*10
相关文章推荐
- openfire中mysql的前期设置
- 修复PLSQL Developer 与 Office 2010的集成导出Excel 功能
- Hadoop集群(第10期)_MySQL关系数据库
- MySQL架构方案
- ECSHOP程序文件解析-cls_mysql文件注释说明
- 运维角度浅谈MySQL数据库优化(李振良)
- 运维角度浅谈MySQL数据库优化
- Hadoop-2.5伪分布式+Hive-1.0.1+mysql
- 使用Zabbix监控MySQL服务
- 利用sqoop将hive数据导入导出数据到mysql
- SQL Server 维护计划实现数据库备份(Step by Step)
- MySQL效能监控工具mysqlreport安装和中文说明
- 一张图告诉你是需要 SQL 还是 Hadoop
- SQL on Haoop/Spark
- 《SQL Server 管理与维护指南》章节目录
- Keepalived+Mysql(2主2从架构)
- zabbix企业应用之监控mysql 5.6版本
- mysql故障~Got fatal error 1236 解决方法
- win7_oracle11g_64位连接32位PLSQL_Developer
- [转]2006 MySQL server has gone away错误,最大值溢出解决办法 mysql max_allowed_packet 查询和修改