端口转发连接到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时,它无法连接到它。
这可能是什么问题?
谢谢。
要检查的事项:
-
为MySQL用户设置的“主机”字段是什么? 如果它是
localhost
或类似的,则MySQL服务器拒绝访问,因为您从外部计算机连接。 将主机字段更改为%
以允许来自任何IP的连接(尽管显然从不在客户端接受来自Internet的连接的生产环境中使用它) -
您的MySQL服务器是否设置为允许远程连接? 打开
/etc/mysql/my.cnf
并validation您的bind-address
是否设置为来宾计算机的专用IP。 此外,请确保您的port
设置与您尝试连接的任何内容相匹配。
除此之外,您还需要发布日志或连接信息,以便我们可以仔细查看实际问题。
您可以使用guest虚拟机操作系统的“桥接网络”,而不是为每个应用程序使用端口转发。 这样您就可以为主机系统分配一个具有相同子网掩码的IP。 例如,如果您的主机系统的IP是192.168.0.10,则在启用桥接网络后,您也可以为访客分配类似的IP,例如192.168.1.11。 因此,您可以正常访问guest虚拟机上运行的所有服务。 有关设置桥接网络的详细信息,请阅读以下链接。 这是一项简单的任务,不会超过2分钟。