使用Tornado连接到MySQL数据库时出现问题(OSX Lion; python 2.7.1)

时间:2013-02-07 03:31:42

标签: python mysql phpmyadmin tornado

我的计算机上安装了Tornado和XAMPP。传统上,我使用PhpMyAdmin来完成我的所有MySQL工作;但是,我也希望与Tornado合作。当我尝试通过Tornado连接到MySQL时,我收到此错误:

Traceback (most recent call last):
  File "__server.py", line 20, in <module>
    class Application(tornado.web.Application):
  File "__server.py", line 40, in Application
    password=options.mysql_password
  File "/Library/Python/2.7/site-packages/tornado-2.4.1-py2.7.egg/tornado/database.py",     line 59, in __init__
    args = dict(conv=CONVERSIONS, use_unicode=True, charset="utf8",
NameError: global name 'CONVERSIONS' is not defined

这个错误让我相信Tornado并不认为我的计算机上安装了MySQL。

以下是__server.py的相关Tornado代码,如果它有任何区别:

import tornado.database
import tornado.options
import unicodedata
from tornado.options import define, options

define("port", default=8888, help="run on the given port", type=int)
define("mysql_host", default="localhost", help="database host") #127.0.0.1:3306 – this was the      default (should I change it? I didn't get this far in the setup process to know)
define("mysql_database", default="Godzillian1", help="database name")
define("mysql_user", default="root", help="database user")
define("mysql_password", default="", help="database password")

class Application(tornado.web.Application):
    self.db = tornado.database.Connection(
        host=options.mysql_host, 
        database=options.mysql_database,
        user=options.mysql_user, 
        password=options.mysql_password
    )

因此我的问题是:我是否需要更改Tornado配置文件中的某些内容或其他类似内容?目前,任何MySQL文件都位于我的XAMPP文件夹中。这对我来说似乎有问题,但在我移动一切之前,我想检查一下。或者,我是否需要重新下载&#34; MySql完全?或者它与龙卷风__server.py本身有关。 (注意:出于此目的,我删除了密码并制作了username=root,试图找到解决方案。)

编辑: 我已经成功安装了MySQL5(64位)和MySQL-Python,但我仍然得到NameError: global name 'CONVERSATIONS' is not defined的同样错误。我应该安装32位版本的MySQL,以便它与MySQL-Python兼容吗? (我认为Lion需要64位MySQL ......但我现在一无所知)。这很令人困惑!

非常感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。 MySQL-Python必须(重新)正确安装 。我还必须将我的python 2.7.1切换到32位版本而不是64位,而在OSX Lion 上,MySQL必须安装为64位。兼容性似乎很难轻松实现,因此许多人用来安装MySQL和MySQL-Python的另一个可行选择是安装/使用MacPorts然后使用这两个命令:

sudo port install py26-mysql 
sudo port install mysql5-server

无论如何,如果这还不够,请参阅此SO问题以获得更全面的解决方案解释: How to install MySQLdb (Python data access library to MySQL) on Mac OS X?