【问题标题】:MySQL-python Cannot connect to serverMySQL-python 无法连接到服务器
【发布时间】:2011-06-19 18:14:18
【问题描述】:

这快把我逼疯了。

我在 Vista 上安装了来自 .exe 的 Python 2.5 和 MySQL-python-1.2.3 here

在过去的几周里,我一直在制作.php 页面,并且连接良好,以便在我的浏览器中测试它们。

$dbcnx=@mysql_connect("localhost", "root", "mypassword")

我也一直在使用 mysql 命令行

mysql.exe -uroot -pmypassword just fine.

但是,当我尝试将 MySQLdb 与

一起使用时
conn = MySQLdb.connect(host = "localhost", user = "root", passwd = "mypassword") 

我明白了

OperationalError: (2003, "Can't connect to MySQL server on 'localhost' (10061)")

我已检查 MySQL 是否在服务中运行。我在 my.ini 中检查了我的 MySQL 配置,它在端口 = 3306 上运行。我什至卸载并重新安装了 MySQL 5.1。我在谷歌上阅读了几页连接问题和答案,但没有产生任何结果。一定是我忽略了一些简单的事情,但是有人有更多想法吗?

【问题讨论】:

标签: python mysql


【解决方案1】:

不要使用 windows 版本(我所有的相关经验都在 Linux 上),但我敢打赌,如果你使用 127.0.0.1 代替 localhost,它会起作用。

编辑:-- 一点解释。

首先,检查mysql.user 表中的条目host 字段(尽管默认情况下,您可能有三个根条目,涵盖所有基础)。很可能,您的问题是由于 MySQL 服务正在侦听 127.0.0.1:3306,而不是 localhost:3306,并且您的 hosts 文件或其他路由配置没有被 python 解释器正确调用。

【讨论】:

  • 哇。我本可以发誓我读过有人说使用“localhost”从地址更改的地方,所以我从未尝试将其更改为 127.0.0.1。然而,这似乎奏效了! (至少现在它返回了我的 MySQL 语法本身的错误,我必须弄清楚。)我不确定它为什么会起作用,因为查看 mysql.user 表,选择主机只会返回 localhost。非常感谢你!我应该早点问,为自己节省了 3 个小时。
  • 检查我答案的第二部分——这将与路由有关
【解决方案2】:

确保您已在防火墙中打开 TCP 端口 3306 以进行连接。

也看到这个问题Can't connect to MySQL server on 'localhost' (10061)

【讨论】:

  • 啊,我应该说我什至完全禁用了我的防火墙,试图让它也能正常工作。不过还是谢谢你的建议。
猜你喜欢
  • 2020-09-13
  • 2015-05-10
  • 2012-11-03
  • 2015-01-21
  • 1970-01-01
  • 2012-11-12
  • 2014-07-15
相关资源
最近更新 更多