我有:
- Linux Mint 18.3 主机(192.168.1.19)
- 一台 VirtualBox Windows Server 2012 客户机,在 IIS8.5+PHP7(192.168.1.8)上安装了 Joomla
- 安装了 MySql Server 5.7 的 VirtualBox Windows Server 2012 客户机(192.168.1.12)
两个虚拟机均有桥接连接。通信的工作原理:
- Linux 可以 ping Joomla 和 MySql 虚拟机
- 两个虚拟机都可以 ping Linux
- 虚拟机之间无法互相 ping 通(不知道为什么)
- 从 Linux,我可以使用 MySql 客户端连接到 Windows 虚拟机内的 MySql Server
我需要的:
- 我需要 Joomla(安装在第一个虚拟机上)使用安装在第二个虚拟机上的数据库
有什么帮助吗?:)
因为两个虚拟机不能直接通信(为什么?),我想在 Joomla 中configuration.php
我可以将 192.168.1.19 设置为数据库主机,在 Linux 机器上我可以将所有的 MySql 连接从 192.168.1.8 转发到 192.168.1.12,但是我不知道如何实现,因为我已经对iptables进行了一些尝试,但我不知道如何使用它来实现转发。
答案1
使VirtualBox虚拟机相互通信的解决方案:
首先,为两个虚拟机的网络适配器分配新的随机 MAC 地址(如果不这样做,我无法解决这个问题)
在 VirtualBox 管理器中,转到“文件”、“首选项”、“网络”,添加一个新的 NAT 网络(我将其命名为“JoomlaDatabase”),网络 CIDR = 10.0.2.0/24。在此新创建的 NAT 的网络选项中,禁用 DHCP(没有必要禁用它,但它对于最大程度的控制很有用,并避免将随机 IP 地址分配给虚拟机)。
在两个虚拟机的设置中,打开网络适配器配置并将其附加到名为“JoomlaDatabase”的“NAT 网络”。
关闭虚拟机。
重新启动虚拟机并在 TCP/IPv4 设置中插入以下值(DNS IP 是 OpenDNS):IP 地址 = 10.0.2.5(Joomla)或 10.0.2.6(MySQL);子网掩码 = 255.255.255.0;网关 = 10.0.2.1;DNS 1 = 208.67.222.222;DNS 2 = 208.67.220.220。
关闭电源然后重新启动虚拟机。
现在两个虚拟机都可以连接到Internet,并且可以互相ping通。
打开Joomla的configuration.php并更改此值:public $host ='10.0.2.6';
就这样:现在 Joomla 可以使用另一台虚拟机的数据库服务器了。