丢失 MySql 连接的 Django ORM 密钥错误
Django ORM key error with lost MySql connection
这是环境:
与 MySql.
兼容的 AWS Aurora 数据库
Django 2.0.3 (Python 3.6)
Pip-Mysql 依赖项:django-mysql==2.2.2, mysqlclient==1.3.12.
主从数据库配置。
django 或 mysql 引擎似乎总是在某些查询上失败导致此特定错误:
Traceback (most recent call last): File
"/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py",
line 158, in get
rel_obj = self.field.get_cached_value(instance) File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/models/fields/mixins.py",
line 13, in get_cached_value
return instance._state.fields_cache[cache_name] KeyError: 'assigned_to'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File
"/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/backends/utils.py",
line 85, in _execute
return self.cursor.execute(sql, params) File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/backends/mysql/base.py",
line 71, in execute
return self.cursor.execute(query, args) File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/cursors.py",
line 253, in execute
self._warning_check() File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/cursors.py",
line 148, in _warning_check
warnings = db.show_warnings() File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/connections.py",
line 381, in show_warnings
self.query("SHOW WARNINGS") File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/connections.py",
line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
是的,我的一个模型有 "assigend_to" 字段,它是一个外键。但为什么它会因 KeyError 而失败?
有没有人遇到过任何类似的 KeyErrors 并因此 MySql 失去连接?
在官方的MySQL定义中,有一个关于这个错误的specific page。从这里可以详细看出,这里是你应该尝试的:
- 您的错误中的 "during query" 项可能与处理数百万行导致的超时有关。您可以将
net_read_timeout
增加到 60 秒等
- 当您尝试初始连接时可能会发生这种情况,但在您的情况下这是不可能的。
哇,实际情况是这样的:
- 我正在使用反向外键进行查询。
- 使用反向外键返回的对象包含一些其他外键。
- 当我尝试访问它们时,例如'assigned_to' 我每次都遇到这个异常。
这是环境:
与 MySql.
兼容的 AWS Aurora 数据库
Django 2.0.3 (Python 3.6)
Pip-Mysql 依赖项:django-mysql==2.2.2, mysqlclient==1.3.12.
主从数据库配置。
django 或 mysql 引擎似乎总是在某些查询上失败导致此特定错误:
Traceback (most recent call last): File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 158, in get rel_obj = self.field.get_cached_value(instance) File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/models/fields/mixins.py", line 13, in get_cached_value return instance._state.fields_cache[cache_name] KeyError: 'assigned_to'
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/backends/utils.py", line 85, in _execute return self.cursor.execute(sql, params) File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 71, in execute return self.cursor.execute(query, args) File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/cursors.py", line 253, in execute self._warning_check() File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/cursors.py", line 148, in _warning_check warnings = db.show_warnings() File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/connections.py", line 381, in show_warnings self.query("SHOW WARNINGS") File "/home/ubuntu/ivs/vpython/lib/python3.6/site-packages/MySQLdb/connections.py", line 277, in query _mysql.connection.query(self, query) _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')
是的,我的一个模型有 "assigend_to" 字段,它是一个外键。但为什么它会因 KeyError 而失败?
有没有人遇到过任何类似的 KeyErrors 并因此 MySql 失去连接?
在官方的MySQL定义中,有一个关于这个错误的specific page。从这里可以详细看出,这里是你应该尝试的:
- 您的错误中的 "during query" 项可能与处理数百万行导致的超时有关。您可以将
net_read_timeout
增加到 60 秒等 - 当您尝试初始连接时可能会发生这种情况,但在您的情况下这是不可能的。
哇,实际情况是这样的:
- 我正在使用反向外键进行查询。
- 使用反向外键返回的对象包含一些其他外键。
- 当我尝试访问它们时,例如'assigned_to' 我每次都遇到这个异常。