"/home/envs/local/lib/python2.7/site-packages/MySQLdb/
connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue
sqlalchemy.exc.OperationalError: (OperationalError) (2006, 'MySQL server has gone away')
python,flask,SqlAlchemy
网站刚刚拉起来的时候运行正常,但是过1,2个小时以后就报503错误。差了下日志如上。
百度and谷歌了一下,
都是推荐修改
wait_timeout=2880000
interactive_timeout = 2880000
但是这两个值如果没设置的话,默认就是8小时吧?
max_allowed_packet = 10M这个貌似就更没必要修改了吧?因为一开始是正常的。过1,2个小时才有问题。
请问要怎么弄呀。。
neildd
2012 年 11 月 22 日
import MySQLdb
class MyDBClass:
def __init__(self, db_host, db_user, db_pass, db_name, db_charset='UTF8'):
self.db_host = db_host
self.db_user = db_user
self.db_pass = db_pass
self.db_name = db_name
self.db_charset = db_charset
self.db = None
def db_connect(self):
self.db = MySQLdb.connect(host=self.db_host, user=self.db_user, passwd=self.db_pass, db=self.db_name, charset=self.db_charset)
self.cursor = self.db.cursor()
def db_ping(self):
if not self.db:
self.db_connect()
else:
try:
self.db.ping()
except:
self.db_connect()
def db_fetchone(self, *args):
self.db_ping()
self.cursor.execute(*args)
ret = self.cursor.fetchone()
return ret
def db_fetchall(self, *args):
self.db_ping()
self.cursor.execute(*args)
ret = self.cursor.fetchall()
return ret
def db_execute(self, *args):
self.db_ping()
self.cursor.execute(*args)
return self.db.insert_id()
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://v2ex.ih06.com/t/53023
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.