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

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

相关推荐
成为大佬先秃头5 小时前
数据库连接池:Druid
数据库·mysql·druid
Birdy_x6 小时前
接口自动化项目实战(1):requests请求封装
开发语言·前端·python
我爱学习好爱好爱6 小时前
Ansible 常用模块详解:lineinfile、replace、get_url实战
linux·python·ansible
一轮弯弯的明月8 小时前
Python基础-速通秘籍(下)
开发语言·笔记·python·学习
晓华-warm8 小时前
Warm-Flow 1.8.5 正式发布:超时自动审批、暂存功能来了!
数据库
千寻girling9 小时前
面试官 : “ 说一下 Python 中的常用的 字符串和数组 的 方法有哪些 ? ”
人工智能·后端·python
第一程序员9 小时前
Python基础学习路径:非科班转码者的入门指南
python·github
u0136863829 小时前
将Python Web应用部署到服务器(Docker + Nginx)
jvm·数据库·python
light blue bird9 小时前
多页签Razor组支轴业务整顿组件
数据库·.net·ai大数据·多功能图表报表·web mvc + razor
wregjru9 小时前
【mysql】2.数据表操作
数据库·mysql