【问题标题】:Python MySQL connection. Running on a Virtual MachinePython MySQL 连接。在虚拟机上运行
【发布时间】:2013-02-05 15:07:40
【问题描述】:

我正在尝试建立与使用 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)")

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

【问题讨论】:

  • 您是否可以使用mysql 命令行工具连接到它?
  • 10061 表示 Connection Refused 确保您的 mysql 守护程序/服务已启动
  • @VarinderSingh MySQL 服务正在运行,我确实验证了这一点。
  • @Wooble 我没试过。但你认为这会有什么不同吗?
  • 好吧,如果命令行工具也无法连接,那几乎肯定不是Python问题。

标签: python mysql virtual-machine mysql-python


【解决方案1】:

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

您的虚拟机正在运行什么操作系统?如果是 Unix,那么是否有 mysqld 进程正在运行?

无论如何,这可能与 Python 无关。您的代码片段看起来不错。您只需要解决连接问题。请查看此页面,详细了解如何找到问题的根源。

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

我希望这会有所帮助。

【讨论】:

  • 我正在运行 Windows Server 2008R2。我在命令提示符下试过了,没有任何区别。
  • 没有任何区别是什么意思?您是否能够使用 mysqld 从命令提示符连接到您的 sql server 数据库?查看此链接以了解我们的建议...dev.mysql.com/doc/refman/5.0/en/windows-start-command-line.html
【解决方案2】:

假设您的客户端和 mysql 服务器与您所说的在同一台机器上,并且 mysql 服务器正在运行,您可以尝试以下操作

在您的my.cnf 中,这将主要在 linux 中的 /etc/mysql/my.cnf 中,或者检查您在 Windows 上的 mysql 安装以找到 my.cnf

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

如果尚未允许远程客户端,您也可以尝试注释掉 skip-networking

重启mysqld

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多