如何从主机 Macbook 连接到 VirtualBox 上的 SQLServer 运行

How can I connect to SQLServer running on VirtualBox from my host Macbook

我想在我的 Mac 上 运行 SQLServer,但我无法在本地执行此操作。如何使用 VirtualBox 托管 SQLServer 并从我的 MacBook 连接到它以进行本地开发?

  1. 下载VirtualBox
  2. here
  3. 下载 Windows 10 ISO
  4. 使用 VirtualBox 创建一个新的 Windows 10 虚拟机。当它要求 "Virtual Optical Disk File" 时,将其指向步骤 2 中的 ISO 下载:

  1. 继续 Windows 10 设置
  2. 在Windows虚拟机中,下载并安装SQL服务器(我用的是Express
  3. 当SQL服务器安装完成后,安装我们稍后需要的工具(SSMS)

  1. 使用SSMS,创建一个新数据库(我叫我的testdatabase

8.1。创建新登录名:右键单击 Security > New > Login... 请务必 select SQL Server authentication 选项。

8.2。在 Server Roles 选项卡中,select sysadmin 选项:

8.3。在 User Mapping 选项卡中,将登录映射到数据库,并选中所有分配角色成员资格:

  1. 打开服务器属性(右键单击根级对象)。转到 Security 选项卡,然后将 Server Authentication mode 切换为 SQL Server and Windows Authentication mode:

  1. 打开Windows服务程序,找到SQL Server Browser。打开其属性并将 Startup type 更改为自动:

11.1。打开 Sql 服务器配置管理器程序。导航到 SQL Server Network Configuration 下的 Protocols 并启用 TCP/IP 选项:

11.2。打开 TCP/IP 属性切换到 IP Addresses tab。记下 IP2 下的 IP Address 字段(稍后您将需要它):

11.3。将 IPALL 下的 TCP Port 设置为 1433:

  1. 在 Windows VirtualBox 上配置防火墙以允许 1433 解锁(我刚刚禁用了整个防火墙,可能不是最佳选择。)edit: 另一位用户已将添加防火墙规则的步骤添加到此 post.

  2. 在 Macbook 的 VirtualBox 应用程序中,打开 Windows VM 的设置并转到 Network 选项卡。将 Attached to 下拉菜单设置为 NAT,然后单击 Port Forwarding。添加规则以将 VM 的 1433 端口转发到本地主机的 1433 端口。 Guest IP 将是步骤 11.2 中的 IP:


您现在应该能够使用类似这样的连接字符串从您的 macbook 连接到您的 SQL 服务器:

jdbc:sqlserver://127.0.0.1;databaseName=testdatabase


在 Windows 防火墙中打开端口以进行 TCP 访问的步骤

  1. 开始菜单上,点击运行,输入WF.msc,然后单击确定。
  2. Windows 高级安全防火墙 中,在左窗格中右键单击 入站规则 ,然后单击操作窗格(右上角)中的新建规则
  3. 规则类型对话框中,select端口,然后点击下一步。
  4. 协议和端口对话框中,selectTCP。 Select 特定本地端口,然后键入数据库引擎实例的端口号,在我的例子中,我们使用默认值 1433。单击下一步。
  5. 操作对话框中,select允许连接,然后单击下一步。
  6. 个人资料 对话框中,我将打开域并关闭 public。然后点击下一步。
  7. Name 对话框中,键入 "Allow SQL 1433 Inbound" 并输入相同的描述。然后点击完成。