Flask Security To Mysql连接问题

问题描述

我正在使用Flask Security Too(https://flask-security-too.readthedocs.io/en/stable/index.html)对测试服务器上的用户进行身份验证。我按照文档中的说明进行了安装和运行。一切正常,但是由于某种原因,应用程序失去了与MysqL服务器的连接,并开始返回内部服务器错误。在哨兵中,我看到以下错误消息:

sqlalchemy.exc.InvalidRequestError)在无效事务回滚之前无法重新连接 [sql:SELECT anon_1.user_id AS anon_1_user_id,anon_1.user_email AS anon_1_user_email,anon_1.user_first_name AS anon_1_user_first_name,anon_1.user_last_name AS anon_1_user_last_name,anon_1.user_password AS anon_1_user_password,anon_1.user_last_login_at AS anon_1_user_last_login_at,anon_1.user_current_login_at AS anon_1_user_current_login_at,anon_1.user_last_login_ip AS anon_1_user_last_login_ip,anon_1.use ...

当晚上几个小时没有访问该站点时,通常会出现此错误。重新启动Flask应用程序即可解决问题。

我尝试更改sqlAlchemy选项,但没有成功。由于我在专用服务器上使用MysqL数据库,因此我也尝试使用本地MysqL数据库,因此在这里也遇到同样的问题。

我想先解决此问题,然后再花更多时间将其集成到我的网站中。

有人知道什么会导致此问题吗?

解决方法

在使用psycopg2时,我已经看到了这一点(并且存在错误),其中PRIOR错误(例如,在类型不兼容的列上进行选择)会导致连接永久性不可用。根据我的测试,一个明显的方法甚至知道发生这种情况,直到引发该错误的查询为止-因为这是一个编码错误-我修复了该区域的一些错误,请注意psycopg2-我认为您没有使用它。 我将查看日志或打开完整的mysql查询日志记录,以查看晚上可能在查询什么。

另一个想法(我认为不会导致此错误)是许多DB在一段时间后断开连接。确保您使用的是Flask-SQLAlchemy 2.4.0或更高版本,并放入配置中: app.config [“ SQLALCHEMY_ENGINE_OPTIONS”] = {“ pool_pre_ping”:True}

这将确保连接有效,然后再返回要使用的连接。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...