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%"
可以将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') }