當前位置: 妍妍網 > 碼農

Docker安裝MS SQL Server並使用Navicat遠端連線

2024-02-26碼農

MS SQL Server簡介

Microsoft SQL Server(簡稱SQL Server)是由微軟公司開發的關聯式資料庫管理系統,它是一個功能強大、效能卓越的企業級資料庫平台,用於儲存和處理大型數據集、支持高效查詢和分析等操作。SQL Server 支持廣泛的應用程式開發介面(API),包括 T-SQL、ADO.NET、ODBC、OLE DB 等,並支持多種作業系統,包括 Windows、Linux 和 Docker 等。SQL Server 包含許多高級功能和元件,如資料倉儲、分析服務、報告服務、全文搜尋等,可為企業提供全面的數據管理和分析解決方案。

基於Ubuntu的Microsoft SQL Server官方映像

  • mssql-server Docker hub:https://hub.docker.com/_/microsoft-mssql-server

  • 拉取Microsoft SQL Server 2022容器映像

    sudo docker pull mcr.microsoft.com/mssql/server:2022-latest

    驗證mssql映像是否成功拉取到本地

    使用以下命令來檢視mssql映像是否成功拉取到本地:

    docker images

    建立並執行一個mssql容器

    使用以下命令啟動容器(Docker 映像啟動後,將會自動啟動 SQL Server),其中 Y.sa123456 為 SQL Server sa 使用者的密碼:

    這個命令的含義是在 Docker 中以後台模式 (-d) 執行 Microsoft SQL Server 2022 的最新版本 (mcr.microsoft.com/mssql/server:2022-latest) 映像,並將容器命名為 mssql2022 (--name mssql2022)。同時,透過 -p 1433:1433 參數將容器的 1433 埠對映到主機的 1433 埠上,使得可以透過主機的 1433 埠存取 SQL Server。在容器啟動過程中,需要設定兩個環境變量:ACCEPT_EULA=Y 表示接受使用條款。MSSQL_SA_PASSWORD=Y.sa123456 表示設定 SA 使用者的密碼為 "Y.sa123456" [一定要註意密碼一點要嚴格設定不然有坑]。

    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Y.sa123456" -p 1433:1433 --name mssql2022 -d mcr.microsoft.com/mssql/server:2022-latest

    註意大坑使用Docker部署Sql Server容器後過幾秒就停止了

    SA_PASSWORD=Y.sa123456 為密碼,要求是最少8位元的強密碼,要有大寫字母,小寫字母,數位以及特殊符號,不然會有一個大坑(Docker啟動Sql Server容器後過幾秒就停止了)。

    驗證容器是否建立成功

    docker ps

    如果使用docker ps檢視不到在使用docker ps -a檢視,如果docker ps -a可以檢視到那就說明容器沒有啟動需要使用docker start name來啟動容器!

    設定 Docker 主機防火墻規則

    預設情況下,Docker 帶有一個內建的防火墻,需要開放 1433 埠才能讓外部存取 SQL Server。使用以下命令開放 Docker 主機的 1433 埠:

    sudo ufw allow 1433/tcp

    重新開機防火墻,註意重新開機防火墻之後才會生效:

    sudo ufw reload

    伺服器防火墻配置1433的開放埠

    Navicat遠端連線

    參考文章

  • 使用 Docker 執行 SQL Server Linux 容器映像:https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&pivots=cs1-bash