我正在尝试与使用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上运行?
答案 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上使用ifconfig
或ipconfig
查看您的VM ip
如果还没有允许远程客户端
,您也可以尝试注释skip-networking
行
重启mysqld
/etc/init.d/mysqld restart
基于debian的发行版,service mysqld restart
表示Redhat或重新启动windows上的mysql服务