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

时间:2013-02-05 15:07:40

标签: python mysql virtual-machine mysql-python

我正在尝试与使用python在本地运行的MySQL建立连接。 我使用以下代码

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

我正在使用虚拟机,我在VM上运行Python和MySQL。我无法建立连接。

我得到这个错误

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

我尝试过提供VM的IP地址代替localhost,但仍然无法正常工作。我也尝试过指定端口号。 连接是否不同,因为它在VM上运行?

2 个答案:

答案 0 :(得分:0)

当您尝试从命令行直接连接到mysql数据库时它是否有效?

您的VM运行的操作系统是什么?如果它是一个Unix那么有一个mysqld进程运行吗?

无论如何,这可能与Python没有任何关系。你的代码snipppet看起来不错。您只需要解决连接问题。请查看此页面,了解有关如何解决此问题根源的详细信息。

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

我希望这会有所帮助。

答案 1 :(得分:0)

假设你的客户端和mysql服务器在你所说的同一台机器上并运行mysql服务器你可以尝试以下

在你的my.cnf中,大部分位于linux的/etc/mysql/my.cnf中,或者在Windows上查看你的mysql安装,找到my.cnf

查找bind-address指令并为您的VM主机设置IP地址。如果在Linux上,您可以在Windows上使用ifconfigipconfig查看您的VM ip

如果还没有允许远程客户端

,您也可以尝试注释skip-networking

重启mysqld

/etc/init.d/mysqld restart基于debian的发行版,service mysqld restart表示Redhat或重新启动windows上的mysql服务