如何从主机 Macbook 连接到 VirtualBox 上的 SQLServer 运行
How can I connect to SQLServer running on VirtualBox from my host Macbook
我想在我的 Mac 上 运行 SQLServer,但我无法在本地执行此操作。如何使用 VirtualBox 托管 SQLServer 并从我的 MacBook 连接到它以进行本地开发?
- 下载VirtualBox
- 从 here
下载 Windows 10 ISO
- 使用 VirtualBox 创建一个新的 Windows 10 虚拟机。当它要求 "Virtual Optical Disk File" 时,将其指向步骤 2 中的 ISO 下载:
- 继续 Windows 10 设置
- 在Windows虚拟机中,下载并安装SQL服务器(我用的是Express)
- 当SQL服务器安装完成后,安装我们稍后需要的工具(SSMS)
- 使用SSMS,创建一个新数据库(我叫我的
testdatabase
)
8.1。创建新登录名:右键单击 Security > New > Login...
请务必 select SQL Server authentication
选项。
8.2。在 Server Roles
选项卡中,select sysadmin
选项:
8.3。在 User Mapping
选项卡中,将登录映射到数据库,并选中所有分配角色成员资格:
- 打开服务器属性(右键单击根级对象)。转到
Security
选项卡,然后将 Server Authentication mode
切换为 SQL Server and Windows Authentication mode
:
- 打开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
:
在 Windows VirtualBox 上配置防火墙以允许 1433 解锁(我刚刚禁用了整个防火墙,可能不是最佳选择。)edit: 另一位用户已将添加防火墙规则的步骤添加到此 post.
在 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 访问的步骤
- 在开始菜单上,点击运行,输入WF.msc,然后单击确定。
- 在 Windows 高级安全防火墙 中,在左窗格中右键单击 入站规则 ,然后单击操作窗格(右上角)中的新建规则。
- 在规则类型对话框中,select端口,然后点击下一步。
- 在协议和端口对话框中,selectTCP。 Select 特定本地端口,然后键入数据库引擎实例的端口号,在我的例子中,我们使用默认值 1433。单击下一步。
- 在操作对话框中,select允许连接,然后单击下一步。
- 在 个人资料 对话框中,我将打开域并关闭 public。然后点击下一步。
- 在 Name 对话框中,键入 "Allow SQL 1433 Inbound" 并输入相同的描述。然后点击完成。
我想在我的 Mac 上 运行 SQLServer,但我无法在本地执行此操作。如何使用 VirtualBox 托管 SQLServer 并从我的 MacBook 连接到它以进行本地开发?
- 下载VirtualBox
- 从 here 下载 Windows 10 ISO
- 使用 VirtualBox 创建一个新的 Windows 10 虚拟机。当它要求 "Virtual Optical Disk File" 时,将其指向步骤 2 中的 ISO 下载:
- 继续 Windows 10 设置
- 在Windows虚拟机中,下载并安装SQL服务器(我用的是Express)
- 当SQL服务器安装完成后,安装我们稍后需要的工具(SSMS)
- 使用SSMS,创建一个新数据库(我叫我的
testdatabase
)
8.1。创建新登录名:右键单击 Security > New > Login...
请务必 select SQL Server authentication
选项。
8.2。在 Server Roles
选项卡中,select sysadmin
选项:
8.3。在 User Mapping
选项卡中,将登录映射到数据库,并选中所有分配角色成员资格:
- 打开服务器属性(右键单击根级对象)。转到
Security
选项卡,然后将Server Authentication mode
切换为SQL Server and Windows Authentication mode
:
- 打开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
:
在 Windows VirtualBox 上配置防火墙以允许 1433 解锁(我刚刚禁用了整个防火墙,可能不是最佳选择。)edit: 另一位用户已将添加防火墙规则的步骤添加到此 post.
在 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 访问的步骤
- 在开始菜单上,点击运行,输入WF.msc,然后单击确定。
- 在 Windows 高级安全防火墙 中,在左窗格中右键单击 入站规则 ,然后单击操作窗格(右上角)中的新建规则。
- 在规则类型对话框中,select端口,然后点击下一步。
- 在协议和端口对话框中,selectTCP。 Select 特定本地端口,然后键入数据库引擎实例的端口号,在我的例子中,我们使用默认值 1433。单击下一步。
- 在操作对话框中,select允许连接,然后单击下一步。
- 在 个人资料 对话框中,我将打开域并关闭 public。然后点击下一步。
- 在 Name 对话框中,键入 "Allow SQL 1433 Inbound" 并输入相同的描述。然后点击完成。