若主力在 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 管理工具
開啟 SSMS 連接 MSSQL。
MSSQL 連接成功,表示 MSSQL 已經正常啟動。
Firewall Echo Request
由於 Host OS 為 macOS,Windows 是透過 Parallel Desktop 以 VM 存在,為了確保兩個 OS 的網路是通的,建議改變 Windows Firewall 設定方便 debug。
在 Firewall 下選擇 Advanced settings。
左側選擇
Inbound Rules
右側選擇
File and Printer Sharing (Echo Request - ICMPv4-In)
,在Private, Public
啟動之
在 macOS 能 ping 到 Windows 的 IP,確保 macOS 與 Windows 之間網路暢通。
Enable sa
MSSQL 預設使用 Windows Authetication,但因為目前 Node 在 macOS 而非 Windows,因此必須改用 SQL Server Authentication。
- MSSQL -> Properties
- 左側選擇
Security
- 右側的
Server authentication
選擇SQL Server and Windows Authentication mode
- MSSQL -> Security -> Logins -> sa -> Properties
- 設定
sa
密碼
- 左側選擇
Status
- 右側
Login
選擇Enabled
重新啟動 MSSQL。
SSMS 重新以 SQL Server Authentication 與 sa
登入。
以 sa
登入成功。
Enable TCP/IP
由於 macOS 與 MSSQL 要以 IP 連接,但 MSSQL 預設並沒有支援 TCP/IP,需手動設定。
SQL Server Configuration Manager:
- 左側選擇 SQL Server Network Configuration -> Protocol for MSSQLSERVER
- 右側
TCP/IP
選擇Enabled
- 重新啟動 MSSQL
Firewall TCP 1433
儘管 MSSQL 支援 TCP/IP,但因為 MSSQL 使用 TCP port 1433
,Windows Firewall 預設並未開啟,必須手動設定。
Windows Firewall:
- 左側選擇
Advanced settings
- 左側選擇
Inbound Rules
- 右側選擇
New Rule
選擇 Port
。
- 選擇
TCP
- 選擇
Specific local ports
,設定1433
選擇 Allow the connection
。
按 Next
下一步。
設定 rule 名稱。
DataGrip
在 macOS 以 DataGrip 連接 MSSQL。
使用 SQL Serer authentication 與 sa
透過 IP 連上 MSSQL。
DataGrip 順利連上 MSSQL。
Conclusion
- 除了在 Parallel Desktop 安裝 Windows 10 與 MSSQL 外,還要設定
sa
、TCP/IP 與 Firewall 才能順利在 macOS 連接 MSSQL