flask mysql的报错

    raise err.OperationalError(
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (ConnectionAbortedError(10053, '你的主机中的软件中止了一个已建立的连接。', None, 10053, None))")
[SQL: SELECT admin_login_log.id AS admin_login_log_id, admin_login_log.admin_id AS admin_login_log_admin_id, admin_login_log.ip AS admin_login_log_ip, admin_login_log.create_time AS admin_login_log_create_time 
FROM admin_login_log 
WHERE admin_login_log.admin_id = %(admin_id_1)s ORDER BY admin_login_log.create_time DESC]

SHOW GLOBAL VARIABLES LIKE "%timeout%"

flask mysql的报错_第1张图片

可以将interactive_timeout设置大一些。如

set global interactive_timeout=86400;

问题二:

我在使用Python操作Mysql数据库时出现问题:(pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query ([WinError 10053] 你的主机中的软件中止了一个已建立的连接。)')

错误原因:是因为MySQL持久化链接保持时间wait_timeout。我的数据库的持久化链接保持时间是2分钟

set global wait_timeout=7200;

或者编辑这个属性时间也可以

SQLALCHEMY_POOL_RECYCLE 

自动回收连接的秒数。这对 MySQL 是必须的,默认 情况下 MySQL 会自动移除闲置 8 小时或者以上的连接。 需要注意地是如果使用 MySQL 的话, Flask-SQLAlchemy 会自动地设置这个值为 2 小时。

​​​​​​配置 — Flask-SQLAlchemy 2.0 documentation

# 数据库的datetime时间显示对的,但是取出来慢8小时的解决方案:

data = {
    "admin_id": admin_login_log.admin_id,
    "ip": admin_login_log.ip,
    "create_time": admin_login_log.create_time.strftime('%Y%m%d %H:%M:%S')
}

你可能感兴趣的:(mysql,flask,数据库)