【问题标题】:mySQL interface error only occuring if ran in Django仅当在 Django 中运行时才会发生 mySQL 接口错误
【发布时间】:2010-09-15 21:49:10
【问题描述】:

我正在运行一个网络爬虫,它通过 Django 作为一个单独的线程调用。当它尝试存储抓取的信息时,我收到此错误:

文件“/usr/lib/pymodules/python2.6/MySQLdb/cursors.py”,第 147 行,在执行中 字符集 = db.character_set_name() 接口错误:(0, '')

如果我从命令行手动运行脚本,我不会收到此错误。有什么想法吗?

我的猜测是我在循环的一次迭代中执行了大约 4 个 cursor.execute()s。这会不会是在扔东西?

谢谢!

【问题讨论】:

    标签: python mysql django multithreading


    【解决方案1】:

    由于它提到了字符集,我的直觉是,您从命令行运行的 Django/Python/something 与从网络服务器运行的不同。在您的设置文件中,打开DEBUG=True,重新启动服务器,然后再次运行它。特别是,查看显示的路径列表。如果它们不是完全您期望的那样,那么这是一个危险信号。

    【讨论】:

    • @markuz:认真的吗? 1.5 年后,您突然认为 OP 认为是 正确 答案的这个答案在某种程度上是错误的?你在生产 Django 站点上工作多久了?您成功处理过多少次“在一种环境中工作但在另一种环境中无效”类型的错误?
    【解决方案2】:

    我遇到了同样的问题。对我来说问题是

    from django.db import connections
    cursor=connections["default"].cursor()
    

    在其他脚本文件之外。

    当我在执行查询的方法中移动这一行时,它解决了问题

    cursor=connections["default"].cursor()
    

    对我来说,学习是我以前的方法无法保持联系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多