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