Python MySQL连接。运行在虚拟机上

1 投票
2 回答
1993 浏览
提问于 2025-04-17 14:49

我正在尝试用Python连接本地运行的MySQL数据库。我的代码是这样的:

import MySQLdb
db = MySQLdb.connect("localhost","username","password","dbname")

我在一个虚拟机上工作,Python和MySQL都是在这个虚拟机上运行的。但是我无法建立连接。

我遇到了这个错误:

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

我试着把虚拟机的IP地址放在localhost的位置,但还是不行。我也试着指定了端口号。请问在虚拟机上运行的连接方式有什么不同吗?

2 个回答

0

假设你的客户端和MySQL服务器在同一台机器上,并且MySQL服务器正在运行,你可以尝试以下步骤。

首先,找到你的 my.cnf 文件,这个文件在Linux系统中通常位于 /etc/mysql/my.cnf,如果你使用的是Windows,可以查看你的MySQL安装目录来找到 my.cnf

接下来,查找 bind-address 这一行,并把IP地址设置为你的虚拟机主机的地址。如果你在Linux上,可以使用 ifconfig 命令查看你的虚拟机IP,Windows上则可以用 ipconfig

如果 skip-networking 这一行没有被注释掉,你可以尝试把它注释掉,以允许远程客户端连接。

然后,重启MySQL服务。

在基于Debian的系统上,可以使用 /etc/init.d/mysqld restart,在Redhat系统上则用 service mysqld restart,如果是Windows,则重启MySQL服务。

0

你在命令行直接连接mysql数据库的时候,能成功吗?

你的虚拟机运行的是哪个操作系统?如果是Unix系统的话,是否有mysqld这个进程在运行?

无论如何,这个问题可能和Python没有关系。你的代码片段看起来没问题。你只需要解决连接的问题。可以查看这个页面,了解如何找到问题的根源。

http://dev.mysql.com/doc/refman/5.5/en/can-not-connect-to-server.html

希望这些信息对你有帮助。

撰写回答