几个小时后 Django + PyMySQL 抛出 "MySQL server has gone away"
Django + PyMySQL throws "MySQL server has gone away" after a couple of hours
我的 Django 1.6 应用程序 (Python3) 中有一个模块像守护进程一样运行,但它在几个小时后抛出此错误 运行:
OperationalError: (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))")
自动重新连接调用 MYSQL_OPT_RECONNECT
的 MySQL 连接中似乎存在一个标志,我应该设置它吗?在哪里?我正在使用 PyMySQL 连接器(通过 运行 pymysql.install_as_MySQLdb()
in the main __init__.py
)。
我们必须在抛出错误时捕获错误,并调用django.db.connection.close()
重新连接。
from django.db import connection
from django.db.utils import OperationalError
...
try:
function_that_uses_database_connection()
except OperationalError:
connection.close()
function_that_uses_database_connection()
虽然我没有找到让它自动运行的方法,但它完成了工作。
我的 Django 1.6 应用程序 (Python3) 中有一个模块像守护进程一样运行,但它在几个小时后抛出此错误 运行:
OperationalError: (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))")
自动重新连接调用 MYSQL_OPT_RECONNECT
的 MySQL 连接中似乎存在一个标志,我应该设置它吗?在哪里?我正在使用 PyMySQL 连接器(通过 运行 pymysql.install_as_MySQLdb()
in the main __init__.py
)。
我们必须在抛出错误时捕获错误,并调用django.db.connection.close()
重新连接。
from django.db import connection
from django.db.utils import OperationalError
...
try:
function_that_uses_database_connection()
except OperationalError:
connection.close()
function_that_uses_database_connection()
虽然我没有找到让它自动运行的方法,但它完成了工作。