快速入門:在 Red Hat 上安裝 SQL Server 並建立資料庫

適用於:SQL Server - Linux

在本快速入門中,您會在 Red Hat Enterprise Linux (RHEL) 8.x 上安裝 SQL Server 2017 (14.x)。 接著您可以使用 sqlcmd 連線建立您的第一個資料庫並執行查詢。

如需支援平台的詳細資訊,請參閱 Linux 上 SQL Server 2017 的版本資訊

在本快速入門中,您會在 Red Hat Enterprise Linux (RHEL) 8.x 上安裝 SQL Server 2019 (15.x)。 接著您可以使用 sqlcmd 連線建立您的第一個資料庫並執行查詢。

如需支援平台的詳細資訊,請參閱 Linux 上 SQL Server 2019 的版本資訊

在本快速入門中,您會在 Red Hat Enterprise Linux (RHEL) 8.x 或 9.x 上安裝 SQL Server 2022 (16.x)。 接著,您可以使用 sqlcmd 連線以建立您的第一個資料庫並執行查詢。

如需支援平台的詳細資訊,請參閱 Linux 上 SQL Server 2022 (16.x) 的版本資訊

提示

本教學課程需要使用者輸入和網際網路連線。 如果您對自動離線安裝程序感興趣,請參閱 Linux 上的 SQL Server 安裝指引。 如果您選擇在 RHEL 上預先安裝 SQL Server VM 以便執行以生產為基礎的工作負載,請遵循建立 SQL Server VM 的最佳作法

Azure Marketplace 映像

您可以根據下列 Azure Marketplace 影像來建立 VM:

當您使用上述市集影像時,您即避免安裝步驟,且可透過提供 SKU 及開始使用 SQL Server 所需的 sa 密碼來直接設定執行個體。 Microsoft 和 Red Hat 皆完全支援使用上述 Marketplace 影像部署在 RHEL 上的 SQL Server Azure VM。

您可以使用下列命令,以 mssql-conf 在 Linux 上設定 SQL Server:

sudo /opt/mssql/bin/mssql-conf setup

必要條件

您必須有 RHEL 8.x 機器搭配至少 2 GB 記憶體。

若您要在自己的機器上安裝 Red Hat Enterprise Linux,請前往 https://access.redhat.com/products/red-hat-enterprise-linux/evaluation。 您也可以在 Azure 中建立 RHEL 虛擬機器。 請參閱使用 Azure CLI 建立和管理 Linux VM,並於呼叫 az vm create時使用 --image RHEL

如果您先前已安裝 Community Technology Preview (CTP) 或 SQL Server 的候選版 (RC),您必須先移除舊的儲存機制,再遵循這些步驟。 如需詳細資訊,請參閱設定用於安裝和升級 Linux 上 SQL Server 的存放庫

如需其他系統需求,請參閱 SQL Server 在 Linux 上的系統需求

安裝 SQL Server

下列安裝 SQL Server 的命令會指向 RHEL 8 儲存機制。 RHEL 8 未預先安裝 SQL Server 需要的 python2。 在開始 SQL Server 安裝步驟之前,請執行命令並驗證已選取 python2 作為解譯器:

sudo alternatives --config python
# If not configured, install python2 and openssl10 using the following commands:
sudo yum install python2
sudo yum install compat-openssl10
# Configure python2 as the default interpreter using this command:
sudo alternatives --config python

如需詳細資訊,請參閱下列有關安裝 python2 並將其設為預設解譯器的部落格:https://www.redhat.com/en/blog/installing-microsoft-sql-server-red-hat-enterprise-linux-8-beta

若要在 RHEL 上設定 SQL Server,請從終端執行下列命令,安裝 mssql-server 套件:

  1. 下載 SQL Server 2017 (14.x) Red Hat 儲存機制組態檔:

    sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2017.repo
    

    提示

    如果您想要安裝不同版本的 SQL Server,請參閱本文的 SQL Server 2019 (15.x)SQL Server 2022 (16.x) 版本。

  2. 執行下列命令以安裝 SQL Server:

    sudo yum install -y mssql-server
    
  3. 套件安裝完成後,請使用其完整路徑執行 mssql-conf setup 並遵循提示以設定 SA 密碼,然後選擇您的版本。 提醒您,下列 SQL Server 為免費授權的版本:Evaluation、Developer 及 Express。

    sudo /opt/mssql/bin/mssql-conf setup
    

    請記得為 SA 帳戶指定強式密碼。 您需要至少 8 個字元的長度,包括大寫和小寫字母、基本 10 個數字和 (或) 非英數字元符號。

  4. 完成設定之後,請確認服務正在執行:

    systemctl status mssql-server
    
  5. 若要允許遠端連線,請在 RHEL 防火牆上開啟 SQL Server 連接埠。 SQL Server 連接埠預設為 TCP 1433。 如果您的防火牆採用 FirewallD,可以使用下列命令:

    sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
    sudo firewall-cmd --reload
    

此時,SQL Server 正在您的 RHEL 機器上執行並可立即使用!

下列安裝 SQL Server 的命令會指向 RHEL 8 儲存機制。 RHEL 8 未預先安裝 SQL Server 需要的 python2。 在開始 SQL Server 安裝步驟之前,請執行命令並驗證已選取 python2 作為解譯器:

sudo alternatives --config python
# If not configured, install python2 and openssl10 using the following commands:
sudo yum install python2
sudo yum install compat-openssl10
# Configure python2 as the default interpreter using this command:
sudo alternatives --config python

如需詳細資訊,請參閱下列有關安裝 python2 並將其設為預設解譯器的部落格:https://www.redhat.com/en/blog/installing-microsoft-sql-server-red-hat-enterprise-linux-8-beta

若要在 RHEL 上設定 SQL Server,請從終端執行下列命令,安裝 mssql-server 套件:

  1. 下載 SQL Server 2019 (15.x) Red Hat 儲存機制組態檔:

    sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
    

    提示

    如果您想要安裝不同版本的 SQL Server,請參閱本文的 SQL Server 2017 (14.x)SQL Server 2022 (16.x) 版本。

  2. 執行下列命令以安裝 SQL Server:

    sudo yum install -y mssql-server
    
  3. 套件安裝完成後,請使用其完整路徑執行 mssql-conf setup 並遵循提示以設定 SA 密碼,然後選擇您的版本。 提醒您,下列 SQL Server 為免費授權的版本:Evaluation、Developer 及 Express。

    sudo /opt/mssql/bin/mssql-conf setup
    

    請記得為 SA 帳戶指定強式密碼。 您需要至少 8 個字元的長度,包括大寫和小寫字母、基本 10 個數字和 (或) 非英數字元符號。

  4. 完成設定之後,請確認服務正在執行:

    systemctl status mssql-server
    
  5. 若要允許遠端連線,請在 RHEL 防火牆上開啟 SQL Server 連接埠。 SQL Server 連接埠預設為 TCP 1433。 如果您的防火牆採用 FirewallD,可以使用下列命令:

    sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
    sudo firewall-cmd --reload
    

此時,SQL Server 正在您的 RHEL 機器上執行並可立即使用!

下列安裝 SQL Server 的命令會指向 RHEL 8 儲存機制。

若要在 RHEL 上設定 SQL Server,請從終端執行下列命令,安裝 mssql-server 套件:

  1. 下載 SQL Server 2022 (16.x) Red Hat 8 存放庫設定檔:

    sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo
    

    提示

    如果您想要安裝不同版本的 SQL Server,請參閱本文的 SQL Server 2017 (14.x)SQL Server 2019 (15.x) 版本。

  2. 執行下列命令以安裝 SQL Server:

    sudo yum install -y mssql-server
    
  3. 套件安裝完成後,請使用其完整路徑執行 mssql-conf setup 並遵循提示以設定 SA 密碼,然後選擇您的版本。 提醒您,下列 SQL Server 為免費授權的版本:Evaluation、Developer 及 Express。

    sudo /opt/mssql/bin/mssql-conf setup
    

    請記得為 SA 帳戶指定強式密碼。 您需要至少 8 個字元的長度,包括大寫和小寫字母、基本 10 個數字和 (或) 非英數字元符號。

  4. 完成設定之後,請確認服務正在執行:

    systemctl status mssql-server
    
  5. 若要允許遠端連線,請在 RHEL 防火牆上開啟 SQL Server 連接埠。 SQL Server 連接埠預設為 TCP 1433。 如果您的防火牆採用 FirewallD,可以使用下列命令:

    sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
    sudo firewall-cmd --reload
    

此時,SQL Server 正在您的 RHEL 機器上執行並可立即使用!

停用 sa 帳戶為最佳做法

當您在安裝后第一次使用 sa 帳戶連線到 SQL Server 執行個體時,請務必遵循這些步驟,然後作為安全性最佳做法,立即停用 sa 登入。

  1. 建立新的登入,並將其設為 sysadmin 伺服器角色的成員。

  2. 使用您建立的新登入,連線至 SQL Server 執行個體。

  3. 建議的安全性最佳做法為停用 sa 帳戶。

安裝 SQL Server 命令列工具

若要建立資料庫,您必須與可在 SQL Server 上執行 Transact-SQL 陳述式的工具連線。 下列步驟會安裝 SQL Server 命令列工具:sqlcmd 公用程式bcp 公用程式

遵循下列步驟,在 Red Hat Enterprise Linux 上安裝 mssql-tools18

  1. 下載 Microsoft Red Hat 存放庫組態檔。

    • 針對 Red Hat 9,請使用下列命令:

      curl https://packages.microsoft.com/config/rhel/9/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
      
    • 針對 Red Hat 8,請使用下列命令:

      curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
      
    • 針對 Red Hat 7,請使用下列命令:

      curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
      
  2. 如果您已安裝舊版的 mssql-tools,請移除所有舊版的 unixODBC 套件。

    sudo yum remove mssql-tools unixODBC-utf16 unixODBC-utf16-devel
    
  3. 執行下列命令,使用 unixODBC 開發人員套件安裝 mssql-tools18

    sudo yum install -y mssql-tools18 unixODBC-devel
    

    注意

    若要更新為最新版本的 mssql-tools,請執行下列命令:

    sudo yum check-update
    sudo yum update mssql-tools18
    
  4. 選用:在 Bash Shell 中將 /opt/mssql-tools18/bin/ 新增至您的 PATH 環境變數。

    若要讓登入工作階段的 Bash Shell 可存取 sqlcmdbcp,請使用下列命令修改您在 PATH 檔案中的 ~/.bash_profile

    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
    

    若要讓互動式/非登入工作階段的 Bash Shell 可存取 sqlcmdbcp,請使用下列命令修改 ~/.bashrc 檔案中的 PATH

    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
    source ~/.bashrc
    

在本機連線

下列步驟使用 sqlcmd,在本機連線到您的新 SQL Server 執行個體。

  1. 使用您的 SQL Server 名稱 (-S)、使用者名稱 (-U) 和密碼 (-P) 的參數執行 sqlcmd。 在本教學課程中,您將在本機連線,因此伺服器名稱是 localhost。 使用者名稱是 sa,而密碼則是您在安裝期間為 SA 帳戶所提供的密碼。

    sqlcmd -S localhost -U sa -P '<YourPassword>'
    

    注意

    較新版本的 sqlcmd 預設為安全。 如需連線加密的詳細資訊,請參閱適用於 Windows 的 sqlcmd 公用程式,以及適用於 Linux 和 macOS 的使用 sqlcmd 進行連線。 如果連線不成功,您可以將 -No 選項新增至 sqlcmd,以指定加密是選用的,而不是強制性的。

    您可以在命令列中省略密碼,以便稍後在提示時才輸入密碼。

    如果您稍後決定從遠端連線,請針對 -S 參數指定電腦名稱或 IP 位址,並確定已開啟您防火牆上的連接埠 1433。

  2. 如果成功,您應該會收到 sqlcmd 命令提示字元:1>

  3. 如果您收到連線失敗,請先嘗試從錯誤訊息診斷問題。 然後檢閱連線疑難排解建議

建立及查詢資料

下列各節將逐步引導您使用 sqlcmd 來建立新的資料庫、新增資料及執行簡單查詢。

如需撰寫 Transact-SQL 陳述式與查詢的詳細資訊,請參閱教學課程:撰寫 Transact-SQL 陳述式

建立新資料庫

下列步驟會建立名為 TestDB 的新資料庫。

  1. sqlcmd 命令提示字元,貼上下列 Transact-SQL 命令以建立測試資料庫:

    CREATE DATABASE TestDB;
    
  2. 在下一行,撰寫查詢以傳回您伺服器上所有資料庫的名稱:

    SELECT Name from sys.databases;
    
  3. 上述兩個命令不會立即執行。 您必須在新的一行鍵入 GO,以執行上述命令:

    GO
    

插入資料

接下來,建立新的資料表 dbo.Inventory,然後插入兩個新的資料列。

  1. sqlcmd 命令提示字元,將內容切換至 TestDB 資料庫:

    USE TestDB;
    
  2. 建立名為 dbo.Inventory 的新資料表:

    CREATE TABLE dbo.Inventory (
        id INT,
        name NVARCHAR(50),
        quantity INT,
        PRIMARY KEY (id)
    );
    
  3. 將資料插入新的資料表:

    INSERT INTO dbo.Inventory VALUES (1, 'banana', 150);
    INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
    
  4. 鍵入 GO 以執行上述命令:

    GO
    

選取資料

現在,執行查詢以從 dbo.Inventory 資料表傳回資料。

  1. sqlcmd 命令提示字元,輸入查詢以從 dbo.Inventory 資料表傳回 quantity (數量) 大於 152 的資料列:

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

    GO
    

結束 sqlcmd 命令提示字元

若要結束您的 sqlcmd 工作階段,請鍵入 QUIT

QUIT

效能最佳做法

安裝 Linux 上的 SQL Server 之後,請參閱設定 Linux 和 SQL Server 的最佳做法,以改善生產案例的效能。 如需詳細資訊,請參閱 Linux 上的 SQL Server 效能最佳做法和設定方針

跨平台資料工具

除了 sqlcmd 以外,您也可以使用下列跨平台工具來管理 SQL Server:

工具 說明
Azure Data Studio 跨平台 GUI 資料庫管理公用程式。
Visual Studio Code 跨平台 GUI 程式碼編輯器,可執行具有 mssql 延伸模組的 Transact-SQL 陳述式。
PowerShell Core 以 Cmdlet 為基礎的跨平台自動化和設定工具。
mssql-cli 用於執行 Transact-SQL 命令的跨平台命令列介面。

從 Windows 連線

Windows 上 SQL Server 工具連線到 Linux 上 SQL Server 執行個體的方式,與連線到任何遠端 SQL Server 執行個體的方式相同。

如果您有可連線到 Linux 電腦的 Windows 電腦,請嘗試本主題中的相同步驟,從 Windows 命令提示字元執行 sqlcmd。 您必須使用目標 Linux 電腦名稱或 IP 位址而非 localhost,並確定 SQL Server 電腦已開啟 TCP 通訊埠 1433。 如果從 Windows 連線有任何問題,請參閱連線疑難排解建議

如需在 Windows 上執行但連線到 Linux 上 SQL Server 的其他工具,請參閱:

其他部署案例

如需其他安裝案例,請參閱下列資源:

  • 升級:了解如何升級 Linux 上 SQL Server 的現有安裝
  • Uninstall:解除安裝 Linux 上的 SQL Server
  • 自動安裝:了解如何撰寫指令碼,以進行沒有提示的安裝
  • 離線安裝:了解如何手動下載離線安裝的套件

如需常見問題的解答,請參閱 Linux 上的 SQL Server 常見問題集

參與編輯 SQL 文件

您知道您可以自行編輯 SQL 內容嗎? 這樣做不僅可以協助改善文件,也能名列該頁面的參與者。

如需詳細資訊,請參閱如何參與 SQL Server 文件