MySQLdb无法解析localhost

时间:2012-11-07 20:10:17

标签: python mysql localhost mysql-python

我使用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 localhosttelnet localhost 3306都可以正常工作。

环境:

  • Windows 7(64位)
  • Python 2.7.2(32位)
  • MySQLdb 1.2.3
  • MySQL 5.5.28(64位)

2 个答案:

答案 0 :(得分:1)

来自MySQLdb docs,关于使用localhost

  

这将创建与本地运行的MySQL服务器的连接   机器通过UNIX套接字。 UNIX套接字和命名管道不起作用   通过网络,所以如果你指定一个主机而不是localhost,TCP   将使用,如果需要,您可以指定一个奇数端口。

您的服务器可能会侦听TCP套接字。

答案 1 :(得分:0)