2014-11-23 87 views
0

我试图用django连接mysql。下面的命令可以正常工作。[django + mysql] MySQLdb.connect工作正常,但无法通过settings.py连接mysql

import MySQLdb 
>>> con = MySQLdb.Connect(host = "127.0.0.1", port= 3306, user = "root", passwd = "mycode", db = "test") 
>>> con.cursor() 
<MySQLdb.cursors.Cursor object at 0x020F2230> 
>>> cursor = con.cursor() 
>>> sql = "SELECT * FROM test.testing" 
>>> cursor.execute(sql) 
0L 

当我尝试通过settings.py连接数据库,它打破了,我可以找到有关it.Here的我的配置settings.py中

DATABASES = { 
    'default':{ 
     'ENGINE' : 'django.db.backends.mysql', 
     'NAME' : 'tasty', 
     'USER' : 'root', 
     'PASSWORD' : 'mycode', 
     'DATABASE_HOST' : '127.0.0.1', 
     'DATABASE_PORT' : '3306', 
    }, 
} 

该错误消息我不知道从命令行,如下所示。我怀疑我得到错误的原因,是Django无法获取适当的参数为数据库连接。我的环境是win7 32bit,python 2.7.5,django 1.6.7,mysql 5.1,MySQL-python- 1.2.4b4.win32-py2.7.Please有人帮助我,任何建议将不胜感激。

>>> from django.db import connection 
>>> cursor = connection.cursor() 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 160, 
in cursor 
    cursor = self.make_debug_cursor(self._cursor()) 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 132, 
in _cursor 
    self.ensure_connection() 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 127, 
in ensure_connection 
    self.connect() 
    File "C:\Python27\lib\site-packages\django\db\utils.py", line 99, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 127, 
in ensure_connection 
    self.connect() 
    File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 115, 
in connect 
    self.connection = self.get_new_connection(conn_params) 
    File "C:\Python27\lib\site-packages\django\db\backends\mysql\base.py", line 43 
5, in get_new_connection 
    conn = Database.connect(**conn_params) 
    File "C:\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect 
    return Connection(*args, **kwargs) 
    File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 187, in __in 
it__ 
    super(Connection, self).__init__(*args, **kwargs2) 
OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)") 

回答

1

为DB的设置应该是HOSTPORT,不DATABASE_HOST ......那么试试这个:

DATABASES = { 
    'default':{ 
     'ENGINE' : 'django.db.backends.mysql', 
     'NAME' : 'tasty', 
     'USER' : 'root', 
     'PASSWORD' : 'mycode', 
     'HOST' : '127.0.0.1', 
     'PORT' : '3306', 
    }, 
} 
+0

谢谢,这works.After重新启动cmd窗口,一切正常fine.Can”我相信我坚持了这样一个明显的错误。再次感谢。 – Simson 2014-11-23 13:44:15

+0

@Simson,大部分时间我们都错过了明显的:)顺便说一句,请接受我的答案,如果这能解决您的问题,欢呼 – Anzel 2014-11-23 22:16:09

相关问题