常用办理方法
增加 MySQL 的 wait_timeout 和 interactive_timeout 参数:在 MySQL 配置文件(如 my.cnf 或 my.ini)中,增加以下参数的值:
[mysqld]wait_timeout = 28800interactive_timeout = 28800
然后重启 MySQL 做事。

在创建 SQLAlchemy 数据库连接时,设置 pool_recycle 参数,确保连接在达到超时之前被回收:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://user:password@localhost/dbname'app.config['SQLALCHEMY_ENGINE_OPTIONS'] = { 'pool_recycle': 280}
如果你在实行非常大的查询时碰着此缺点,可能须要增加 MySQL 的 max_allowed_packet 参数:
[mysqld]max_allowed_packet = 16M
然后重启 MySQL 做事。
定期测试连接:在 Flask 运用中,可以在要求的高下文中添加测试连接的代码:
from flask import gfrom yourapp import db@app.before_requestdef before_request(): g.db = db.session try: g.db.execute('SELECT 1') except Exception as e: g.db.remove() # 关闭当前连接
利用连接池: 确保 SQLAlchemy 利用连接池,这样可以避免频繁创建和关闭连接的开销。
以上步骤可以帮助你办理 2006 MySQL server has gone away 的缺点。根据你的运用需求和 MySQL 做事器的配置,选择得当的方法进行调度。在生产环境中,定期监控数据库连接和性能,以确保稳定性。