端口转发连接到VirtualBox的MySQL数据库

我将Ubuntu 10.04作为主机 ,将Ubuntu 10.10作为客户机安装在VirtualBox中。

我在端口转发上成功连接到客户机的Apache,所以现在我可以在客户机的Web Server(Apache)中发布的主机网站上打开。

我需要对MySql做同样的事情,即从主机访问来宾机的MySql。

为了实现这个目标,我在主机上执行以下命令:

VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/mysql/HostPort" 3307 VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/mysql/GuestPort" 3306 VBoxManage setextradata Ubuntu "VBoxInternal/Devices/e1000/0/LUN#0/Config/mysql/Protocol" TCP 

其中Ubuntu是主机的名称。

来宾计算机加载,当我尝试从主机连接到MySql时,它无法连接到它。

这可能是什么问题?

谢谢。

要检查的事项:

  1. 为MySQL用户设置的“主机”字段是什么? 如果它是localhost或类似的,则MySQL服务器拒绝访问,因为您从外部计算机连接。 将主机字段更改为%以允许来自任何IP的连接(尽管显然从不在客户端接受来自Internet的连接的生产环境中使用它)

  2. 您的MySQL服务器是否设置为允许远程连接? 打开/etc/mysql/my.cnf并validation您的bind-address是否设置为来宾计算机的专用IP。 此外,请确保您的port设置与您尝试连接的任何内容相匹配。

除此之外,您还需要发布日志或连接信息,以便我们可以仔细查看实际问题。

您可以使用guest虚拟机操作系统的“桥接网络”,而不是为每个应用程序使用端口转发。 这样您就可以为主机系统分配一个具有相同子网掩码的IP。 例如,如果您的主机系统的IP是192.168.0.10,则在启用桥接网络后,您也可以为访客分配类似的IP,例如192.168.1.11。 因此,您可以正常访问guest虚拟机上运行的所有服务。 有关设置桥接网络的详细信息,请阅读以下链接。 这是一项简单的任务,不会超过2分钟。

http://www.virtualbox.org/manual/ch06.html