1

使用标准脚本(或任何其他脚本)我无法将 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)")
4

2 回答 2

0
  1. 数据库在同一台机器上(因此是“localhost”)吗?如果没有,请使用正确的 IP

  2. 用户“root”是否有权从主机“localhost”访问数据库“sakila”?如果没有,授予权限

于 2012-07-25T01:38:25.610 回答
0
  1. 检查您的mysql服务器是否正在运行。
  2. 检查防火墙是否封锁了 3306 端口。
于 2012-07-25T01:44:25.907 回答