使用标准脚本(或任何其他脚本)我无法将 python 连接到 mysql。我目前拥有来自 Conceptive Engineering (Python 2.7.2) 的适用于 Windows 的 Python SDK。早些时候我尝试了从 Enthought 免费下载(可能单独添加 mysqldb)。至于mysql,最新版本是universal windows download,应该会自动正确安装(mysql-installer - 5.5.25a0.msi)。我在尝试了没有单一尺寸安装程序的 mysql 5.1、5.0 之后尝试了这个(有时是 64 位,有时是 32 位)。
在所有情况下,python 和 mysql 都可以单独完美地工作。在我尝试连接之前,我可以看到 mysql windows 服务正在运行。
主脚本可以分为两行:
#this one always works without error in ipython
import MySQLdb
#this one never works, though all the variables test out in mysql fine
con = MySQLdb.connect(host="localhost", port=3306, user="root", db="sakila")
这是来自 ipython 的输出
OperationalError Traceback (most recent call last)
C:\Program Files (x86)\PythonSDK\<ipython-input-3-1ffbd20d17a9> in <module>()
----> 1 con = MySQLdb.connect(host="localhost", port=3306, user="root", db="sakila")
C:\Program Files (x86)\PythonSDK\lib\site-packages\mysql_python-1.2.3-py2.7-win32.egg\MySQLdb\__init__.py in Connect(*args, **kwargs)
79 """Factory function for connections.Connection."""
80 from connections import Connection
---> 81 return Connection(*args, **kwargs)
82
83 connect = Connection = Connect
C:\Program Files (x86)\PythonSDK\lib\site-packages\mysql_python-1.2.3-py2.7-win32.egg\MySQLdb\connections.py in __init__(self, *args, **kwargs)
185 kwargs2['client_flag'] = client_flag
186
--> 187 super(Connection, self).__init__(*args, **kwargs2)
188
189 self.encoders = dict([ (k, v) for k, v in conv.items()
OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")