无法通过仅主机 VirtualBox 接口连接到 SQL Server Express

无法通过仅主机 VirtualBox 接口连接到 SQL Server Express

我已经在 Windows 7 虚拟机中设置了 sql server express 2014,但是我无法使用 Ubuntu 主机上的 jTDS JDBC 驱动程序连接到它。我收到错误Could not retrieve database information。我觉得我一定是在某个地方漏掉了某个步骤,但是在网上找不到我还没有尝试过的东西:

  • 连接 URL 为jdbc:jtds:sqlserver://192.168.56.1:1433/dbo;instance=SQLEXPRESS
  • Windows 防火墙已在客户机上完全禁用。
  • 我可以从主机 ping 客户机 IP 地址。
  • 服务器和 SQL 浏览器服务正在运行。
  • netstat -a在客户机上确认 TCP 0.0.0.0:1433 和 UDP 0.0.0.0:1434 正在监听。
  • 服务器日志显示Listening on <All IPv4>:1433
  • 表面区域配置器工具已启用 TCP/IP 并设置为侦听所有 IP 的端口 1433。
  • SSMS 确认该服务器实例已启用远程访问。
  • 我可以使用仅主机 IP 地址(192.168.56.1,与上文相同)和通过 JDBC 使用的相同 SQL 身份验证凭据从客户机上的 SSMS 连接到数据库。
  • telnet 192.168.56.1 1433telnet 192.168.56.1:1434来自主机的和都会立即失败Connection refused,而来自客户机的相同命令则不会。

我觉得这是一个防火墙问题,因为我似乎能够从客户机内部连接到接口 IP 地址并从输出netstat,但是在关闭 Windows 防火墙的情况下,我不确定下一步该做什么,甚至不知道从这里要采取什么诊断步骤。

答案1

我首先想到的是尝试消除主机专用适配器设置。过去,我对此只有过不好的体验。

我建议您克隆有问题的虚拟机,将两台 Windows 机器的网络类型都更改为桥接(以便它们可以连接到您的物理 LAN),然后启动它们并查看它们是否可以相互通信(从一台到另一台 ping 一下,也可以尝试共享和访问网络文件夹)。

这是我在遇到类似问题时通常会执行的简单测试,因为它从查找故障的方程中消除了主机操作系统。

如果两台 Windows 机器可以通信,请关闭其中一台,然后在将适配器更改为桥接模式后在分配给该机器的新 IP 上再次尝试 Ubuntu。

注意:如果您没有任何类型的 DHCP 服务(例如 LAN 上运行的路由器),则必须为 Windows 机器提供静态 IP 地址。

希望有所帮助。

相关内容