點燈坊

失くすものさえない今が強くなるチャンスよ

設定 MSSQL 開發環境

Sam Xiao's Avatar 2021-10-14

若主力在 macOS 開發 Vue + Node,但 Database 卻使用 MSSQL,則必須在 VM 設定 Windows + MSSQL。

Version

MSSQL 2017

Setup

MSSQL 需安裝兩部分:

  • MSSQL 2017 Developer (SQLServer2017-SSEI-Dev.exe):MSSQL 主程式
  • SQL Server Management Studio (SSMS) (SSMS-Setup-ENU.exe):MSSQL 管理工具

sql000

開啟 SSMS 連接 MSSQL。

sql001

MSSQL 連接成功,表示 MSSQL 已經正常啟動。

Firewall Echo Request

sql002

由於 Host OS 為 macOS,Windows 是透過 Parallel Desktop 以 VM 存在,為了確保兩個 OS 的網路是通的,建議改變 Windows Firewall 設定方便 debug。

在 Firewall 下選擇 Advanced settings。

sql003

  • 左側選擇 Inbound Rules

  • 右側選擇 File and Printer Sharing (Echo Request - ICMPv4-In),在 Private, Public 啟動之

sql004

在 macOS 能 ping 到 Windows 的 IP,確保 macOS 與 Windows 之間網路暢通。

Enable sa

sql012

MSSQL 預設使用 Windows Authetication,但因為目前 Node 在 macOS 而非 Windows,因此必須改用 SQL Server Authentication。

  • MSSQL -> Properties

sql005

  • 左側選擇 Security
  • 右側的 Server authentication 選擇 SQL Server and Windows Authentication mode

sql006

  • MSSQL -> Security -> Logins -> sa -> Properties

sql007

  • 設定 sa 密碼

sql008

  • 左側選擇 Status
  • 右側 Login 選擇 Enabled

sql009

重新啟動 MSSQL。

sql010

SSMS 重新以 SQL Server Authentication 與 sa 登入。

sql011

sa 登入成功。

Enable TCP/IP

sql013

由於 macOS 與 MSSQL 要以 IP 連接,但 MSSQL 預設並沒有支援 TCP/IP,需手動設定。

SQL Server Configuration Manager:

  • 左側選擇 SQL Server Network Configuration -> Protocol for MSSQLSERVER
  • 右側 TCP/IP 選擇 Enabled
  • 重新啟動 MSSQL

Firewall TCP 1433

sql014

儘管 MSSQL 支援 TCP/IP,但因為 MSSQL 使用 TCP port 1433,Windows Firewall 預設並未開啟,必須手動設定。

Windows Firewall:

  • 左側選擇 Advanced settings

sql015

  • 左側選擇 Inbound Rules
  • 右側選擇 New Rule

sql016

選擇 Port

sql017

  • 選擇 TCP
  • 選擇 Specific local ports,設定 1433

sql018

選擇 Allow the connection

sql019

Next 下一步。

sql020

設定 rule 名稱。

DataGrip

sql021

在 macOS 以 DataGrip 連接 MSSQL。

sql022

使用 SQL Serer authentication 與 sa 透過 IP 連上 MSSQL。

sql023

DataGrip 順利連上 MSSQL。

Conclusion

  • 除了在 Parallel Desktop 安裝 Windows 10 與 MSSQL 外,還要設定 sa、TCP/IP 與 Firewall 才能順利在 macOS 連接 MSSQL