关于MySQL server has gone away
时间:2022-07-25
本文章向大家介绍关于MySQL server has gone away,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
当 php 与mysql之间的连接并非php正常回收,断开时,将会报错 "MySQL server has gone away"
该报错表示 mysql连接已经失效,需要重新发起连接.
具体断开原因有以下几点:
mysql 服务重启
当 mysql服务重启之后,将会断开原有的连接,原来的连接断开之后,php继续调用则会报错,
重启包括异常重启,手动重启
可以通过
show global status like 'uptime';
查看mysql的运行时间,推断出他上次的启动时间.
mysql连接超时
当mysql连接成功之后,如果长时间没有操作,mysql服务器将主动关闭此连接
可以通过
show global variables like 'wait_timeout';
查看mysql服务器的连接等待时间,超过该时间没有进行任何操作,mysql将主动关闭此连接
mysql 连接被kill
mysql连接成功之后,可通过
show PROCESSLIST
查看当前mysql的连接数以及连接状态
可通过 命令,
kill id
进行主动关闭某一个连接
执行语句过长
当 sql 大小超出
show global variables like '%max_allowed_packet%';
时,mysql服务器将拒绝解析数据,直接断开响应,从而导致断开连接
解决方案
现在我们知道了 MySQL server has gone away 具体产生原因,那么如何解决此问题呢?
首先我们需要了解,直接原因是连接断开,连接断开无法避免,没有任何方法可以确保一个tcp连接永远有效,我们只能尽量避免出现此状况.
定时ping连接
在mysql 连接成功之后,为了避免太久没有操作被mysql主动断开,我们可以主动,定时的去操作一次mysql,例如
select 1;
来保证 mysql连接的活跃性
断线重连
就算是定时ping,也可能会因为mysql重启,网络连接动荡导致连接断开,那么我们应该在定时ping 出错的时候,及时回收连接,重新发起连接,确保正常业务不会收到影响
注意sql语句的大小
当执行语句过长时,也会出现断线问题,我们需要在php层就做好对sql语句的判断,不能过长,或者调大mysql的
max_allowed_packet
配置项
- python3 将字典,列表等转换成字符串形式存入mysql数据库并复原成字典,列表(处理稍复杂的格式)
- 1441: Min
- 2429: [HAOI2006]聪明的猴子
- 使用apt-get 安装后的mysql 登录问题
- SQL Server 深入解析索引存储(中)
- 1789: [Ahoi2008]Necklace Y型项链
- 3399: [Usaco2009 Mar]Sand Castle城堡
- 遗传算法(1)
- LOJ#6284. 数列分块入门 8
- 3713: [PA2014]Iloczyn
- 洛谷P3195 [HNOI2008]玩具装箱TOY(单调队列优化DP)
- SQL Server 深入解析索引存储(下)
- 2751: [HAOI2012]容易题(easy)
- codevs3002 石子归并 3
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- PHP 错误和异常处理(下)
- PHP 错误和异常处理(上)
- 玩转 PhpStorm 系列(一):主题篇
- 如何用云开发打造“万人同屏”高并发实时互动小程序
- 实战丨云开发帮你和「火箭少女」合个影!
- 开源数据闪回工具—binlog2sql介绍
- 盘点前端面试常见的15个TS问题,你能答对吗?
- 『深度思考』对CenterNet的一些思考与质疑·测试对比CenterNet与U版YoloV3速度与精度
- 优秀员工应该具备的11个特质
- 腾讯位置服务教你快速实现距离测量小工具
- 一张PDF了解JDK11 GC调优秘籍-附PDF下载
- 如何用函数框架快速开发大型 Web 应用 | 实战
- 划重点 | Android Jetpack 三大重要更新!
- JVM系列之:详解java object对象在heap中的结构
- 微信会话语音文件的一句话识别