【发布时间】:2016-03-18 16:22:06
【问题描述】:
我正在编写一个带有“用户”表并使用 SQLAlchemy 的简单 Flask WSGI Web 应用程序。从该表中检索用户作为对象时,会出现以下错误:
OperationalError: (_mysql_exceptions.OperationalError) (2006, 'MySQL server has gone away')
[SQL: u'SELECT users.uid AS users_uid, users.username AS users_username, users.fullname AS users_fullname, users.password AS users_password, users.score AS users_score, users.totalattempted AS users_totalattempted, users.totalcorrect AS users_totalcorrect, users.settings AS users_settings \\nFROM users \\nWHERE users.uid = %s \\n LIMIT %s'] [parameters: (11, 1)]
对于我的登录会话管理,我使用 login_manager 加载用户方法:
@login_manager.user_loader
def load_user(uid):
return get_user_by_uid(uid)
然后这会调用我的get_user_by_uid(uid) 方法:
def get_user_by_uid(uid):
uid = int(uid)
return session.query(User).filter(User.uid == uid).first()
get_user_by_uid(uid) 方法的目的是接受用户的 ID,并将其作为易于使用的对象返回。
OperationalError 是我的查询逻辑有问题,还是我的实际 MySQL 服务器有问题?
谢谢!
【问题讨论】:
-
你的mysql服务器是本地的吗?它是否发生在另一个环境中?
-
@Cyrbil 是 - 服务器是本地的。我可能还应该注意,服务器将在部分时间执行查询,但我似乎无法找到此错误与这些回溯旁边的查询活动之间的相关性。谢谢!
标签: python mysql flask sqlalchemy mod-wsgi