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

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

相关推荐
青春不流名2 分钟前
通过geoip自动更新GeoLite2-ASN GeoLite2-City GeoLite2-Country
数据库
bybitq4 分钟前
Leetcode-3780-Python
python·算法·leetcode
如何原谅奋力过但无声5 分钟前
【力扣-Python-75】颜色分类(middle)
python·算法·leetcode
Rysxt_10 分钟前
IDEA中Git隐藏更改(Stash)功能详解教程
数据库·git·intellij-idea·stash
masterqwer14 分钟前
day40打卡
python
小兔崽子去哪了15 分钟前
机器学习,KNN 算法
后端·python·机器学习
interception15 分钟前
爬虫逆向,瑞数6,补环境,国家专利
javascript·爬虫·python·网络爬虫
laocooon52385788619 分钟前
相对名次算法的处理python
开发语言·python·算法
星火开发设计21 分钟前
Python冒泡排序详解:从原理到代码实现与优化
开发语言·笔记·python·开源·排序算法·课程设计
Java水解23 分钟前
MySQL索引分析以及相关面试题
后端·mysql·面试