MySQL之MySQL server has gone away原因分析以及解决方案

MySQL server has gone away原因分析&解决方案

环境

Python: 3.8/3.9

MySQL: 5.x

情形一

Python sqlalchemy连接池配置中的连接回收时间 SQLALCHEMY_POOL_RECYCLE 大于MySQL配置中的 wait_timeout。

解决方案

  1. 修改MySQL配置中的 wait_timeout
  2. 修改Python数据库连接池中的连接回收时间,如SQLALCHEMY_POOL_RECYCLE

查看MySQL配置

sql 复制代码
show global variables like '%wait_timeout';

更改MySQL配置

注意:

  1. 单位是秒(s)
  2. 默认是28800(即8小时)
  3. 使用global方式更改全局变量,对于已创建的连接会话不生效(比如当前交互的会话)
sql 复制代码
set global wait_timeout=28800;

或者:修改MySQL配置,重启MySQL服务(在mysqld下添加/修改)

复制代码
[mysqld]
wait_timeout = 28800

情形二

数据库连接发送的包数据太大,超过了数据库 max_allowed_packet 配置

查看MySQL配置

sql 复制代码
show global variables like '%max_allowed_packet';

更改MySQL配置

注意:

  1. 单位是字节(Byte)
  2. 默认是4194304(即4MB)
sql 复制代码
# 调整为16MB
set global max_allowed_packet=16*1024*1024;

或者:修改MySQL配置,重启MySQL服务(在mysqld下添加/修改)

复制代码
[mysqld]
max_allowed_packet = 256M

|------------------------------------|
| 欢 迎 客 官 在 评 论 区 分 享 您 的 解 决 方 案 ~ |

相关推荐
F_D_Z1 分钟前
【解决办法】网络训练报错AttributeError: module ‘jax.core‘ has no attribute ‘Shape‘.
开发语言·python·jax
l***21782 分钟前
MySQL--》理解锁机制中的并发控制与优化策略
数据库·mysql·oracle
chenyuhao20245 分钟前
MySQL索引特性
开发语言·数据库·c++·后端·mysql
前端伪大叔14 分钟前
第29篇:99% 的量化新手死在挂单上:Freqtrade 隐藏技能揭秘
后端·python·github
5***r93522 分钟前
SQL实现md5加密方法
数据库·sql
i***778023 分钟前
mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案
数据库·sql·mysql
5***E68525 分钟前
mysql重置root密码(适用于5.7和8.0)
数据库·mysql·adb
q***697726 分钟前
使用 Qt 插件和 SQLCipher 实现 SQLite 数据库加密与解密
数据库·qt·sqlite
t***821126 分钟前
【Oracle11g SQL详解】日期和时间函数:SYSDATE、TO_DATE、TO_CHAR 等
数据库·sql
Fantasy丶夜雨笙歌29 分钟前
SQL综合实战:从基础约束到高级应用的完整指南
数据库·sql