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 分钟前
Flask or Django?开发者の灵魂拷问:要自由还是求省心?
python·flask
hjehheje38 分钟前
clickhouse查询效率低
数据库·人工智能
NoviceLearningRecord41 分钟前
解决webdriver和Chrome不匹配的办法
前端·chrome·python
七七powerful42 分钟前
ClickHouse 中出现 DB::Exception: Too many parts 错误
java·前端·数据库
max5006001 小时前
用python 的 sentiment intensity analyzer的情感分析器,将用户评论进行分类
人工智能·python·分类
性感博主在线瞎搞1 小时前
【神经网络】python实现神经网络(一)——数据集获取
人工智能·python·深度学习·神经网络·机器学习·手写数字识别
not 程序员1 小时前
cmd中有cl但是conda虚拟环境没用cl
开发语言·python·conda
Linux运维老纪1 小时前
Python实战项目(‌Hands-on Python Project)
开发语言·数据库·python·sql·mysql·云计算·运维开发
小林熬夜学编程2 小时前
【MySQL】第十五弹---全面解析事务:定义、起源、版本支持与提交方式
android·linux·服务器·开发语言·数据库·mysql
白杨攻城狮2 小时前
.net 与 Pythonnet库的使用心得
python·c#·.net