zoukankan      html  css  js  c++  java
  • mysql重启服务后,pymsql报错InterfaceError: 2013: Lost connection to MySQL server during query

    mysql重启后,之前的SQLALCHEMY连接并未断开,所以会用之前的连接再次请求。这个时候问题就出现了。为了避免问题的发生,可以在SQLALCHEMY或者FLASK_SQLALCHEMY中设置悲观处理。

    每次请求前先预先请求一次数据库,这个查询可以是简单的查询比如select 1。一旦预先请求出错则重新建立数据库连接。

    SQLALCHEMY中连接配置中有一个参数:
    pool_pre_ping
    设置为True的时候,每次请求就会自动识别连接状态。
    engine = create_engine("mysql+pymysql://user:pw@host/db", pool_pre_ping=True)

    如果是采用配置式连接的:

    app.config['SQLALCHEMY_DATABASE_URI'] = url
    app.config['SQLALCHEMY_ENGINE_OPTIONS'] = {'pool_pre_ping':True}

    这样在数据库重启或者网络引起的数据库连接断开就不会产生报错。

  • 相关阅读:
    Java 集合框架
    Java 网络编程
    Java序列化
    Java 发送邮件
    Java 多线程编程
    Java 文档注释
    Java Applet基础
    Python 基础教程
    Python 简介
    一步步学习SPD2010--第三章节--处理列表和库(19)----关键点
  • 原文地址:https://www.cnblogs.com/DarkRoger/p/15308233.html
Copyright © 2011-2022 走看看