我正在尝试从一个简短的 Java 程序访问两个数据库之一,下面列出了其中的摘录。在我的笔记本电脑上,部署了 eclipse 和 MySQL。代码可以毫无问题地访问 MySQL。但是,HSQLDB 安装在 Oracle VM VirtualBox 上。
>ipconfig
Windows-IP-Konfiguration
Ethernet-Adapter Ethernet:
Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix:
Ethernet-Adapter VirtualBox Host-Only Network:
Verbindungsspezifisches DNS-Suffix:
Verbindungslokale IPv6-Adresse . : fe80::b598:af5e:ee50:42f%10
IPv4-Adresse . . . . . . . . . . : 192.168.56.1
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . :
Drahtlos-LAN-Adapter LAN-Verbindung* 2:
Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix:
Drahtlos-LAN-Adapter LAN-Verbindung* 1:
Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix:
Drahtlos-LAN-Adapter WLAN:
Verbindungsspezifisches DNS-Suffix: kabsi.at
Verbindungslokale IPv6-Adresse . : fe80::5d9a:a1d2:300c:89e0%4
IPv4-Adresse . . . . . . . . . . : 192.168.0.27
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.0.1
Ethernet-Adapter Bluetooth-Netzwerkverbindung:
Medienstatus. . . . . . . . . . . : Medium getrennt
Verbindungsspezifisches DNS-Suffix:
我如何找到虚拟机的 IP 地址?两台机器都是 Windows 10。它会ipconfig
向我显示这个地址吗?我试过了192.168.56.1
,但没有用。
编辑:
我ipconfig
在虚拟机上执行并得到以下“答案”:
C:\Users\User>ipconfig
Windows IP Configuration
Ethernet adapter Ethernet 2:
Connection-specific DNS Suffix . : kabsi.at
Link-local IPv6 Address . . . . . : fe80::185e:4a15:f4bc:3566%8
IPv4 Address. . . . . . . . . . . : 10.0.2.15
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.0.2.2
C:\Users\User>
但是我的 Java 代码虽然成功与安装在主机上的 MySQL 服务器“对话”,但似乎无法访问 VM 上的 HSQLDB:
Unable to connect to server at "jdbc:hsqldb:hsql://10.0.2.15:9001/shop" with user "SA".
java.net.ConnectException: Connection timed out: connect
请注意,我不仅访问虚拟机的 IP,还访问 HSQLDB 的特定(默认)端口。如何区分尝试访问虚拟机失败和尝试访问虚拟机上的端口失败?
答案1
如何找到虚拟机的 IP 地址?
如果您需要知道分配给虚拟机的地址,该地址通常在虚拟机本身中发现(例如ipconfig
在那里运行)。
能
ipconfig
显示这个地址给我吗?我试过了192.168.56.1
,但是没用。
ipconfig
显示分配给该特定计算机的适配器的地址。192.168.56.1
是 Virtualbox Host-only 适配器的私有网络地址。也就是说,这是主持人从虚拟机的角度来看,在 VirtualBox 中(即,如果您的数据库位于您的主机上,则您的虚拟机将向发送请求192.168.56.1
)。
笔记
您可能还想考虑在 VirtualBox 中使用桥接适配器或 NAT 适配器。在这两种适配器中,桥接适配器的配置稍微容易一些。本质上,您将 PC 的网卡分配给 VirtualBox 适配器,它会从您的 DHCP 提供商处获取地址,然后可以像网络上的任何其他计算机一样进行访问。
您可能还想看看VirtualBox 虚拟网络官方文档。