【发布时间】:2012-10-27 23:04:26
【问题描述】:
我已经使用 MySQL 建立了一个基本的事务数据库。使用 python/MySQLdb,这工作正常:
connection = MySQLdb.connect (host = "127.0.0.1", port = 3306, user = "root", passwd = "password", db = "test")
但这不是:
connection = MySQLdb.connect (host = "localhost", port = 3306, user = "root", passwd = "password", db = "test")
使用后者会产生以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "path\to\virtualenv\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "path\to\virtualenv\lib\site-packages\MySQLdb\connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")
我不得不承认我对为什么 MySQLdb 无法解析 localhost 感到有些困惑。 C:\Windows\System32\drivers\etc\hosts 文件没有被修改过。使用常规的 Windows 命令提示符,ping localhost 和 telnet localhost 3306 都可以正常工作。
环境:
- Windows 7(64 位)
- Python 2.7.2(32 位)
- MySQLdb 1.2.3
- MySQL 5.5.28(64 位)
【问题讨论】:
-
@RaunakAgarwal 他的问题已通过恢复他的 hosts 文件得到解决。但是,我的没有修改!
-
您的主机文件尚未修改,但它是否包含类似 127.0.0.1 localhost 的行取消注释该行已为我修复。
标签: python mysql localhost mysql-python