解决MySQL报错Lost connection to MySQL server during query

问题描述:

在确保网络没有问题的情况下,服务器正常运行一段时间后,数据库抛出了异常"Lost connection to MySQL server during query",字面意思就是在查询过程中丢失连接到MySQL服务器,抛去网络原因,基本上就是数据库配置项问题。


解决方案:

  1. 检查max_allowed_packet,max_allowed_packet指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。如果超过了设置的最大长度,则会导致数据读写失败。

执行以下SQL查询配置项的值,单位是字节:

sql 复制代码
show VARIABLES like '%max_allowed_packet%';

根据情况将配置项的值改为适合项目的使用大小,以64MB为例子

sql 复制代码
set global max_allowed_packet = 64*1024*1024*;

也可以通过修改配置文件,Linux修改my.cnf 文件,Windows修改 my.ini 文件,推荐通过文件修改,需要重启mysql

sql 复制代码
[mysqld]
max_allowed_packet = 64M

通过命令行修改只能临时生效,如果下次数据库重启后对应的配置就会又复原了,因为重启的时候加载的是配置文件里面的配置项

  1. 检查wait_timeout,wait_timeout 默认是28800秒,即mysql链接在无操作8个小时后被自动关闭,如果服务器长时间处于空闲状态,再次访问mysql数据库的时候,数据库会拒绝访问。

执行以下SQL查询配置,单位毫秒

sql 复制代码
SHOW VARIABLES LIKE 'wait_timeout';

修改参数SQL

sql 复制代码
set global wait_timeout=28800 * 2;

也可以通过修改配置文件,Linux修改my.cnf 文件,Windows修改 my.ini 文件,推荐通过文件修改,需要重启mysql

sql 复制代码
[mysqld]
wait_timeout = 57600
相关推荐
2501_941805935 小时前
在大阪智能零售场景中构建支付实时处理与高并发顾客行为分析平台的工程设计实践经验分享
数据库
李慕婉学姐6 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
珠海西格电力6 小时前
零碳园区有哪些政策支持?
大数据·数据库·人工智能·物联网·能源
哈里谢顿6 小时前
记录一次sql优化记录
mysql
数据大魔方6 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
Chasing Aurora6 小时前
数据库连接+查询优化
数据库·sql·mysql·prompt·约束
倔强的石头_7 小时前
【金仓数据库】ksql 指南(六)—— 创建与管理用户和权限(KingbaseES 安全控制核心)
数据库
小熊officer8 小时前
Python字符串
开发语言·数据库·python
渐暖°8 小时前
JDBC直连ORACLE进行查询
数据库·oracle
萧曵 丶8 小时前
Next-Key Lock、记录锁、间隙锁浅谈
数据库·sql·mysql·mvcc·可重复读·幻读