当前位置:
首页 > temp > python入门教程 >
-
flask_SQLAlchemy 出现了 Lost connection to MySQL server during query Mysql主机连接超时 错误。
使用python flask框架 flask_sqlalchemy 时出现了 Lost connection to MySQL server during query Mysql主机连接超时的问题
由于Mysql会定时处理长时间未连接使用的连接池 具体时长可通过 查看
1
|
show variables like '%timeout%' |
wait_timeout 为超时时长,这里的时间时 120秒
再超过120秒时会导致 Lost connection to MySQL server during query Mysql主机连接超时 错误
在通过网上翻阅具体解决方案发现答案有了滞后性,旧版本中可以通过配置
SQLALCHEMY_POOL_RECYCLE = 120 #多少秒后自动回收连接。这对 MySQL 是必要的, 它默认移除闲置多于 8 小时的连接。注意如果 使用了 MySQL , Flask-SQLALchemy 自动设定 这个值为 2 小时。
来进行自动回收连接的配置。
在查看源码后发现新版本已经移除了 SQLALCHEMY_POOL_RECYCLE 的配置项
采用
SQLALCHEMY_ENGINE_OPTIONS = { "pool_recycle" : 120 #自动回收连接的秒数 }
这种方式进行配置自动连接回收配置。
具体配置操作代码如下
main.py
app = Flask(__name__) #引入数据库配置 app.config.from_object(Config) #注册数据库 init_db(app) if __name__ == "__main__": app.run(debug=True,port=5000,host="0.0.0.0")
init_db.py
from flask import Flask from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() def init_db(app:Flask): db.init_app(app)
config.py
class Config: DEBUG = True HOST = "127.0.0.1" PORT = 5200 #数据库配置 MYSQL_USERNAME = "root" MYSQL_PASSWORD = "" MYSQL_HOST = "127.0.0.1" MYSQL_PORT = 3306 MYSQL_DATABASE = "" #mysql 数据库的配置信息 SQLALCHEMY_ECHO = True #如果设置成 True,SQLAlchemy 将会记录所有 发到标准输出(stderr)的语句,这对调试很有帮助。 SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{MYSQL_USERNAME}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset=utf8mb4" SQLALCHEMY_ENGINE_OPTIONS = { "pool_recycle" : 120 #自动回收连接的秒数 }
出处:https://www.cnblogs.com/zheng01/p/17426084.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数