在虚拟机中访问 SQL Server 实例

Posted

技术标签:

【中文标题】在虚拟机中访问 SQL Server 实例【英文标题】:Access SQL Server instance in Virtual Machine 【发布时间】:2013-01-31 19:39:34 【问题描述】:

首先,我的设置:

Mac OSX 10.8 在 VM 中运行的 Windows 7 (VMWare Fusion) 在 VM 中运行的 SQL Server 2008 R2 大量 Python 脚本 + 我在 Mac 端高度定制的 Python 安装。

我希望能够在我的笔记本电脑上针对我们的开发数据库的快照在本地运行脚本,该数据库愉快地存在于我的 VM 中。我也不想让 PITA 在 Windows VM 中重建我的 Python 安装。

所以问题是:如何从 Mac 端访问在我的 VM 中运行的 SQL Server 实例?为了访问生产数据,我使用基于 FreeTDS 的 pymssql。

【问题讨论】:

理论上,您可以像访问任何其他 SQL Server 一样访问它:在 SQL Server 上启用适当的网络协议并使用来自客户端的合适连接字符串。你到底有什么问题? 我还没有机会弄脏我的手。与我一起工作的一个人提到,他过去曾通过本机 Windows 安装运行 Windows 7 VM。但他也提到了一些关于“端口转发”的问题,他不记得了,我也不明白。 【参考方案1】:

我是用这个配置运行的,如下:

为 VM 创建一个额外的网络适配器并将其设置为 “我的 Mac 专用”。 Windows 将使用在 VM 设置期间创建的默认网络适配器连接到 Mac 所连接的网络(Internet 等),而您创建的这个新网络适配器将用于 Mac 和 VM 主机之间的通信. 可以使用 ifconfig 识别虚拟网络上的 Mac IP。在我的例子中,它被命名为 vmnet1,IP 为 192.168.23.1 默认情况下,Windows VM IP 将被动态分配。您应该进入 Windows 中的网络设置并设置一个与 Mac IP 在同一网络上的静态 IP。在我的例子中,Fusion 创建的 Windows 网络适配器被命名为 Ethernet1。我将其设置为 192.168.23.100/255.255.255.0。不要设置网关地址,因为您不希望沿此路径路由 在 Mac /etc/hosts 文件中为 Windows IP 创建一个条目,例如"192.168.23.100 mywinsys.local" 在 Windows /windows/system32/drivers/etc/hosts 文件中为 mac IP 创建一个条目,例如“192.168.23.1 mymacsys.local” 请务必关闭 Windows 防火墙或以其他方式打开必要的端口 确保将 SQL Server 配置为接受 IP 连接 https://technet.microsoft.com/en-us/library/hh231672(v=sql.110).aspx

在 mac 上运行的进程可以使用 mywinsys.local 连接到 Windows 进程。在 Windows 上运行的进程可以通过 mymacsys.local 连接到 Mac 进程

【讨论】:

以上是关于在虚拟机中访问 SQL Server 实例的主要内容,如果未能解决你的问题,请参考以下文章

在windows server 2003虚拟机中怎么安装IIS

vmware虚拟机中建立服务器端口映射问题

如何在 Java 虚拟机中查找类的实例?

让虚拟机中的MySQL可以被主机访问

在server2003虚拟机中如何安装IIs?(没光盘,自己在网上下载的IIs6.0)

在win7虚拟机中装sql server(有待完善)