如何连接到在虚拟机上运行的MySQL服务器

时间:2013-06-06 05:37:00

标签: mysql virtual-machine

我在Ubuntu 12.04上运行了MySQL Server 5.5.32。 Ubuntu正在VM上运行。主机平台是Windows 7. 如何从Windows连接Ubuntu的MySQL?

到目前为止,我已完成以下操作:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

运行show grant for root;会显示:

+-------------------------------------------------------------+
| Grants for root@%                                           |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+

但是当我尝试从Windows上运行的SQLYog连接到此服务器时,出现错误Error 2003 Cannot connect to mysql server on '192.168.xxx.xxx'

正在向SQLYog提供IP,我是从ifconfig获得的。提供了inet addr。

inet addr:192.168.226.xxx  Bcast:192.168.226.yyy

使用的地址是不正确还是这些授权问题?请指教。

5 个答案:

答案 0 :(得分:15)

你的问题是(可能)你的mysql绑定到127.0.0.1而不是0.0.0.0

您应该将/etc/mysql/my.cnf中的绑定更改为0.0.0.0

bind-address = 0.0.0.0

然后重新启动mysql。

答案 1 :(得分:2)

在较新版本的MySQL中,默认情况下,默认情况下只能在localhost上侦听,而不是跳过网络 bind-address = 127.0.0.1

因此,您需要将机器IP添加到此处,或者只是在不担心安全问题时将其注释掉。

答案 2 :(得分:1)

错误消息Error No. 2003: Can't connect to MySQL server on 'localhost' (or some other host)

只是意味着以下(或类似)原因之一无法建立连接:

  • 指定主机上没有运行MySQL服务器

  • 使用TCP-IP不允许连接MySQL服务器。检查MySQL配置文件中的“skip-networking”设置(Windows上的my.ini,Unix / Linux上的my.cnf)。它应该被注释为'#skip-networking'。如果未注释掉,则执行此操作并重新启动MySQL服务器以使更改生效。 SQLyog需要使用TCP-IP进行连接。

  • 某些网络问题会阻止连接。它可能是网络配置错误或防火墙问题。我们有时经历过一些防火墙阻止TCP-IP连接,即使它声称被禁用。最常见的是卸载并重新安装防火墙。

  • 尝试连接到ISP的MySQL服务器时,此错误消息通常表示已阻止与MySQL的直接连接。然后,您必须使用HTTP隧道或SSH隧道连接。

答案 3 :(得分:1)

我认为问题在于您的虚拟机设置中的网络适配器设置

在虚拟机设置中这样做。

虚拟机设置 - >网络适​​配器设置 - >选择Bridged

当网络连接处于桥接模式时,VM将连接到物理网络。

将网络连接更改为桥接后,尝试ping Windows计算机中的VM主机。

如果虚拟机正在你的Windows机器上ping,那么它就能正常工作。

答案 4 :(得分:0)

错误编号2003:无法连接到'192.168.x.x'上的MySQL服务器

只是意味着以下(或类似)原因之一无法建立连接:

  • 指定主机上没有运行MySQL服务器

  • 使用TCP-IP不允许连接MySQL服务器。检查MySQL配置文件中的“skip-networking”设置(Windows上的my.ini,Unix / Linux上的my.cnf)。它应该被注释为'#skip-networking'。如果未注释掉,则执行此操作并重新启动MySQL服务器以使更改生效。 SQLyog需要使用TCP-IP进行连接。

  • 确保您可以使用telnet连接到MySQL端口

    C:\ telnet hostname / IP_address port