django.db.utils.interfaceerror:(0,')

jhdbpxl9  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(1130)

我最近在开发的一个工具中实现了django。在做一些测试时,我得到了一个django.db.utils.interfaceerror:(0,'')错误。我读到这可能是一个全局游标问题,但是我只通过django进行查询,让它处理游标。
基本上我有关于化合物的信息,我在工具执行的几分钟内保存到mysql。
这段特定的代码将执行几次(到目前为止似乎运行良好),然后在执行结束时执行最后一次(全局保存)。正是在这个全局保存中,我得到了前面提到的错误。这个全局保存只是迭代所有收集的化合物并保存它们。
我能做些什么来解决这个错误呢?

def save_to_SQL_db(self):
    #####COMPOUND#####
    if not self.sql_key:
        cpd_django=Compound_db(cpd_level=self.get_cpd_level(),\
                               chemical_formula=self.get_Chemical_formula(),\
                               smiles=self.get_SMILES())
    else:
        cpd_django=Compound_db.objects.get(pk=self.sql_key)
        cpd_django.cpd_level=self.get_cpd_level()
        cpd_django.chemical_formula=self.get_Chemical_formula()
        cpd_django.smiles=self.get_SMILES()
    cpd_django.save()

错误:
回溯(最后一次调用):文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\utils.py”,第85行,在执行返回self.cursor.execute(sql,params)文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\mysql\base.py”,第71行,在execute return self.cursor.execute(query,args)文件“user\appdata\local\programs\python37-32\lib\site packages\pymysql\cursors.py”的第170行,在execute result=self.\u query(query)文件“user\appdata\local\programs\python\python37-32\lib\site packages\pymysql\cursors.py”的第328行,查询conn.query(q)文件“user\appdata\local\programs\python37-32\lib\site packages\pymysql\connections.py”,第515行,查询self.\u执行命令(command.com\u query,sql)文件“user\appdata\local\programs\python37-32\lib\site packages\pymysql\connections.py”,第745行,执行命令raiser err.interfaceerror(“(0,“”)pymysql.err.interfaceerror:(0,“”)
上述异常是以下异常的直接原因:
回溯(上次调用):文件“myproject/query.py”的第1900行,在文件“myproject/query.py”的第1803行,在多个查询文件“myproject/query.py”的第1836行,在单个查询文件“myproject/query.py”的第1563行,在查询所有数据库self.database的第243行,在数据库\u saving \u all self.database \u saving \u mets()文件“myproject/query.py”的第519行,在数据库\u saving \u mets mets.save \u to \u sql db()文件“myproject\compound.py”的第829行,在save \u to \u sql db else:file“user\appdata\local\programs\python37-32\lib\site packages\django\db\models\manager.py”的第82行,在manager\u method return getattr(self.get\u queryset(),name)(*args,**kwargs)file“user\appdata\local\programs\python37-32\lib\site packages\django\db\models\query.py”第393行中,在get num=len(clone)file“user\appdata\local\programs\python37-32\lib\site packages\django\db\models\query.py”第250行中,在len self.\u fetch \u all()文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\models\query.py”的第1186行,在\u fetch \u all self.\u result \u cache=list(self.\u iterable \u class(self))文件“user\appdata\local\programs\python\python37-32\lib\site packages\django\db\models\query.py”的第54行,在iter results=compiler.execute\u sql(chunked\u fetch=self.chunked\u fetch,chunk\u size=self.chunk\u size)文件“user\appdata\local\programs\python\python37-32\lib\site packages\django\db\models\sql\compiler.py”,第1065行,执行\u sql cursor.execute(sql,params)文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\utils.py”,在execute return super()中的第100行。execute(sql,params)文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\utils.py”,在execute return self中的第68行。使用 Package 器(sql,params,many=false,executor=self.\u execute)file“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\utils.py”,第77行,在\u execute with \u wrappers return executor(sql,params,many,context)file“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\utils.py”,第85行,在第89行的执行返回self.cursor.execute(sql,params)文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\utils.py”中,在exit raise dj\u exc\u value.with从exc\u value文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\utils.py”第85行的回溯(traceback)中,在执行返回self.cursor.execute(sql,params)文件“user\appdata\local\programs\python37-32\lib\site packages\django\db\backends\mysql\base.py”的第71行,在执行返回self.cursor.execute(query,args)文件“user\appdata\local\programs\python\python37-32\lib\site packages\pymysql\cursors.py”的第170行,在execute result=self.\u query(query)file“user\appdata\local\programs\python37-32\lib\site packages\pymysql\cursors.py”第328行,在query self.\u query conn.query(q)file“user\appdata\local\programs\python\python37-32\lib\site packages\pymysql\connections.py”第515行,在query self.\u执行命令(command.com\u query,sql)文件“user\appdata\local\programs\python37-32\lib\site packages\pymysql\connections.py”,第745行,在django.db.utils.interface错误:(0,')

cidc1ykv

cidc1ykv1#

我知道,这不是最佳答案,但对我来说,尝试关闭3次连接,然后重新连接再次工作。

try:
     connections.close_all()
 except:
     try:
         connections.close_all()
     except:
         try:
             connections.close_all()
         except:
             pass

还尝试在settings.py中将conn\u max\u age设置为none,但没有成功。

相关问题