我已经使用 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 位)
- MySQL数据库 1.2.3
- MySQL 5.5.28(64 位)