MySQL server has gone away 问题的解决方法
2016-06-14 21:49
597 查看
mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了。
造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入)。
解决MySQL server has gone away
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。
解决方案:
在my.cnf文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000
关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理
解决方案:
在my.cnf文件中添加或者修改以下变量:
max_allowed_packet = 10M(也可以设置自己需要的大小)
max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。
重启mysql服务
造成这样的原因一般是sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入)。
解决MySQL server has gone away
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。
解决方案:
在my.cnf文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000
关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
2、执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段。比如,图片数据的处理
解决方案:
在my.cnf文件中添加或者修改以下变量:
max_allowed_packet = 10M(也可以设置自己需要的大小)
max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。
重启mysql服务
相关文章推荐
- Oracle SQL Developer 连接 MySQL
- MYSQL企业常用架构与调优经验分享
- ubuntu16.04下virtualenv环境中, django与mysql安装
- CentOS 7 下MySQL 5.7.12主从复制架构配置记录(亲自验证可行)
- MySQL 性能监控4大指标——第一部分
- MySQL 性能监控4大指标——第一部分
- hadoop下操作hive(与本机mysql元数据关联)
- SQL Server AlwaysOn架构及原理
- greenplum + pgsql和Hadoop+hive+hbase
- 使用Sqoop将Hive表数据导入到mysql
- MySQL性能调优与架构设计——第12章 可扩展设计的基本原则
- XX图文扩容配置说明
- sqoop实现mysql与hdfs数据迁移
- [置顶] MySQL server has gone away 问题的解决方法
- 浅谈SQL Server中的三种物理连接操作(Nested Loop Join、Merge Join、Hash Join)
- 浅谈SQL Server中的三种物理连接操作(Nested Loop Join、Merge Join、Hash Join)
- 6 SQLite与ContentProvider
- 问题-FireDAC连接Sqlite3提示“unable to open database file”
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
- oracle 11g 安装以及工具PLsql developer配置