mac安裝sqlserver


先決條件

  • 適用於支持的任一 Linux 分發版的 Docker 引擎 1.8 以上版本,或適用於 Mac/Windows 的 Docker。 有關詳細信息,請參閱 Install Docker(安裝 Docker)。
  • Docker overlay2存儲驅動程序。 這是大多數用戶的默認設置。 如果發現你未使用此存儲提供程序並且需要進行更改, 請參閱docker 文檔中有關配置 overlay2的說明和警告。
  • 最小 2 GB 的磁盤空間。
  • 最小 2 GB RAM。
  • Linux 上的 SQL Server 的系統要求

請求並運行容器映像

在開始以下步驟之前, 請確保已在本文頂部選擇了首選 shell (bash、PowerShell 或 cmd)。

  1. 從 Microsoft 容器注冊表拉取 SQL Server 2017 Linux 容器映像。

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

     提示

    若要嘗試 SQL Server 2019 預覽圖像, 請參閱本文的 SQL Server 2019 preview 版本

    前一個命令請求最新的 SQL Server 2017 容器映像。 如果想請求某個特定映像,需添加一個冒號和標記名稱(例如 mcr.microsoft.com/mssql/server:2017-GA-ubuntu。 若要查看所有可用映像, 請參閱mssql-Server Docker 中心頁

    對於本文中的 bash 命令, sudo將使用。 在 MacOS 上sudo , 可能不是必需的。 在 Linux 上, 如果不希望使用sudo運行 docker, 可以配置docker組, 並將用戶添加到該組。 有關詳細信息, 請參閱適用於 Linux 的安裝后步驟

  2. 要使用 Docker 運行容器映像,可以從 Bash Shell (Linux/macOS) 或提升的 PowerShell 命令提示符使用以下命令。

    sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong!Passw0rd>" \ -p 1433:1433 --name sql1 \ -d mcr.microsoft.com/mssql/server:2017-latest 

     備注

    密碼應符合 SQL Server 默認密碼策略,否則容器無法設置 SQL Server,將停止工作。 默認情況下, 密碼的長度必須至少為8個字符, 並且包含以下四個集中的三個字符:大寫字母、小寫字母、十進制數字和符號。 你可以通過執行 docker logs 命令檢查錯誤日志。

     備注

    默認情況下,這會創建一個使用 SQL Server 2017 開發人員版的容器。 在容器中運行生產版本的過程略有不同。 有關詳細信息,請參閱運行生產容器映像

    下表對前一個 docker run 示例中的參數進行了說明:

    參數 描述
    -e 'ACCEPT_EULA=Y' 將 ACCEPT_EULA 變量設置為任意值,以確認接受最終用戶許可協議。 SQL Server 映像的必需設置。
    -e 'SA_PASSWORD=<YourStrong!Passw0rd>' 指定至少包含 8 個字符且符合 SQL Server 密碼要求的強密碼。 SQL Server 映像的必需設置。
    -p 1433:1433 建立主機環境(第一個值)上的 TCP 端口與容器(第二個值)中 TCP 端口的映射。 在此示例中, SQL Server 偵聽容器中的 TCP 1433, 此端口公開給主機上的端口1433。
    --name sql1 為容器指定一個自定義名稱,而不是使用隨機生成的名稱。 如果運行多個容器,則無法重復使用相同的名稱。
    mcr.microsoft.com/mssql/server:2017-latest SQL Server 2017 Linux 容器映像。
  3. 要查看 Docker 容器,請使用 docker ps 命令。

    sudo docker ps -a
    

    將看到與如下屏幕截圖相似的輸出:

    Docker ps 命令輸出

  4. 如果“狀態”列顯示“正常運行”,則 SQL Server 將在容器中運行,並偵聽“端口”列中指定的端口 。 如果 SQL Server 容器的“狀態”列顯示“已退出”,則參閱配置指南的疑難解答部分 。

-h(主機名)參數也非常有用,但為了簡單起見,本教程中不使用它。 這會將容器的內部名稱更改為一個自定義值。 也就是以下 Transact-SQL 查詢中返回的名稱:

SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName') 

將 -h 和 --name 設為相同的值是一種很好的方法,可以輕松地識別目標容器。

更改 SA 密碼

SA 帳戶是安裝過程中在 SQL Server 實例上創建的系統管理員。 創建 SQL Server 容器后,通過在容器中運行 echo $MSSQL_SA_PASSWORD,可發現指定的 MSSQL_SA_PASSWORD 環境變量。 出於安全考慮,請考慮更改 SA 密碼。

  1. 選擇 SA 用戶要使用的強密碼。

  2. 使用 docker exec 運行sqlcmd ,以使用 Transact-SQL 更改密碼。 在下面的示例中, 將舊密碼<YourStrong!Passw0rd>和新<YourNewStrong!Passw0rd>密碼替換為你自己的密碼值。

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P "<YourStrong!Passw0rd>" \ -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong!Passw0rd>"' 

連接到 SQL Server

下列步驟在容器內部使用 SQL Server 命令行工具 sqlcmd 來連接 SQL Server。

  1. 使用 docker exec -it 命令在運行的容器內部啟動交互式 Bash Shell。 在下面的示例中,sql1 是在創建容器時由 --name參數指定的名稱。

    sudo docker exec -it sql1 "bash" 
  2. 一旦位於容器內部,使用 sqlcmd 進行本地連接。 默認情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong!Passw0rd>" 

     提示

    可以省略命令行上提示要輸入的密碼。

  3. 如果成功,應會顯示 sqlcmd 命令提示符:1>

創建和查詢數據

以下部分將引導你使用 sqlcmd 和 Transact-SQL 完成新建數據庫、添加數據並運行簡單查詢的整個過程。

新建數據庫

以下步驟創建一個名為 TestDB 的新數據庫。

  1. 在 sqlcmd 命令提示符中,粘貼以下 Transact-SQL 命令以創建測試數據庫:

    CREATE DATABASE TestDB 
  2. 在下一行中,編寫一個查詢以返回服務器上所有數據庫的名稱:

    SELECT Name from sys.Databases 
  3. 前兩個命令沒有立即執行。 必須在新行中鍵入 GO 才能執行以前的命令:

    GO
    

插入數據

接下來創建一個新表 Inventory,然后插入兩個新行。

  1. 在 sqlcmd 命令提示符中,將上下文切換到新的 TestDB 數據庫:

    USE TestDB 
  2. 創建名為 Inventory 的新表:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT) 
  3. 將數據插入新表:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154); 
  4. 要執行上述命令的類型 GO

    GO
    

選擇數據

現在,運行查詢以從 Inventory 表返回數據。

  1. 通過 sqlcmd 命令提示符輸入查詢,以返回 Inventory 表中數量大於 152 的行:

    SELECT * FROM Inventory WHERE quantity > 152; 
  2. 執行命令:

    GO
    

退出 sqlcmd 命令提示符

  1. 要結束 sqlcmd 會話,請鍵入 QUIT

    QUIT
    
  2. 要在容器中退出交互式命令提示,請鍵入 exit。 退出交互式 Bash Shell 后,容器將繼續運行。

從容器外連接

還可以從支持 SQL 連接的任何 Linux、Windows 或 macOS 外部工具連接到 Docker 計算機上的 SQL Server 實例。

以下步驟在容器外使用 sqlcmd 連接在容器中運行的 SQL Server。 這些步驟假定你已在容器外安裝了 SQL Server 命令行工具。 使用其他工具時, 相同的原則同樣適用, 但連接過程對於每個工具都是唯一的。

  1. 查找承載容器的計算機的 IP 地址。 在 Linux 上,使用 ifconfig 或 ip addr。在 Windows 上,使用 ipconfig。

  2. 對於本示例, 請在客戶端計算機上安裝sqlcmd工具。 有關詳細信息, 請參閱在 Windows 上安裝 sqlcmd在 Linux 上安裝 sqlcmd

  3. 運行 sqlcmd,指定 IP 地址和映射容器中的端口 1433 的端口。 在此示例中, 這是主機上的相同端口1433。 如果在主機計算機上指定了其他映射端口, 則可在此處使用。

    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong!Passw0rd>" 
  4. 運行 Transact-SQL 命令。 完成后,鍵入 QUIT

連接到 SQL Server 的其他常見工具包括:

刪除容器

如果想刪除本教程中使用的 SQL Server 容器,請運行以下命令:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM