我在 VirtualBox 中安装了Ubuntu 10.04 作为主机,将 Ubuntu 10.10 作为客户机。
我在端口转发上成功连接到客户机的 Apache,因此现在我可以在客户机的 Web 服务器(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
并验证您bind-address
是否设置为来宾机器的私有 IP。此外,请确保您的port
设置与您尝试连接的任何内容相匹配。除此之外,您还需要发布日志或连接信息,以便我们可以更仔细地查看实际问题。
您可以为您的来宾操作系统使用“桥接网络”,而不是为每个应用程序使用端口转发。这样您就可以分配一个与您的主机系统具有相同子网掩码的 ip。例如,如果您的主机系统的 ip 是 192.168.0.10 ,在启用桥接网络后,您也可以为访客分配一个类似的 ip,例如 192.168.1.11。因此,您可以正常访问来宾上运行的所有服务。阅读以下链接以获取有关设置桥接网络的更多信息。这是一项简单的任务,不会超过 2 分钟。
http://www.virtualbox.org/manual/ch06.html