Ubuntu下安裝SQLServer

  • 安裝過程當中遇到的問題

1 sqlcmd -S localhost -U SA 時報錯linux

Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2746sql

Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Client unable to establish connection.shell

使用 下面的命令,將版本更新至14數據庫

sudo apt-get install mssql-server=14.0.3192.2-2

 

  • 安裝步驟

要在 Ubuntu 上配置 SQL Server,請在終端中運行如下命令以安裝 mssql-server 包 。ubuntu

  1. 導入公共存儲庫 GPG 密鑰:bash

    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  2. 註冊 Microsoft SQL Server Ubuntu 存儲庫:服務器

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"

    提示curl

    若是想安裝 SQL Server 2019,必須改成註冊 SQL Server 2019 存儲庫。 使用如下命令安裝 SQL Server 2019:ide

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2019.list)"
  3. 運行如下命令以安裝 SQL Server:工具

    sudo apt-get update
    sudo apt-get install -y mssql-server
  4. 包安裝完成後,運行 mssql-conf setup,按照提示設置 SA 密碼並選擇版本。

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

    提示

    如下 SQL Server 2017 版本是免費提供許可的:Evaluation、Developer 和 Express 版。

    備註

    請確保爲 SA 賬戶指定強密碼(最少 8 個字符,包括大寫和小寫字母、十進制數字和/或非字母數字符號)。

  5. 完成配置後,驗證服務是否正在運行:

    systemctl status mssql-server --no-pager
  6. 若是計劃遠程鏈接,可能還須要在防火牆上打開 SQL Server TCP 端口(默認值爲 1433)。

此時,SQL Server 已在 Ubuntu 計算機上運行,隨時可使用!

安裝 SQL Server

要在 Ubuntu 上配置 SQL Server,請在終端中運行如下命令以安裝 mssql-server 包 。

  1. 導入公共存儲庫 GPG 密鑰:

    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  2. 爲 SQL Server 2019 註冊 Microsoft SQL Server Ubuntu 存儲庫:

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2019.list)"
  3. 運行如下命令以安裝 SQL Server:

    sudo apt-get update
    sudo apt-get install -y mssql-server
  4. 包安裝完成後,運行 mssql-conf setup,按照提示設置 SA 密碼並選擇版本。

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

    備註

    請確保爲 SA 賬戶指定強密碼(最少 8 個字符,包括大寫和小寫字母、十進制數字和/或非字母數字符號)。

  5. 完成配置後,驗證服務是否正在運行:

    systemctl status mssql-server --no-pager
  6. 若是計劃遠程鏈接,可能還須要在防火牆上打開 SQL Server TCP 端口(默認值爲 1433)。

此時,SQL Server 2019 已在 Ubuntu 計算機上運行,隨時可使用!

安裝 SQL Server 命令行工具

若要建立數據庫,則須要使用可在 SQL Server 上運行 Transact-SQL 語句的工具進行鏈接。 如下步驟安裝 SQL Server 命令行工具:sqlcmd 和 bcp

經過下列步驟在 Ubuntu 上安裝 mssql-tools 。

  1. 導入公共存儲庫 GPG 密鑰。

    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  2. 註冊 Microsoft Ubuntu 存儲庫。

    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
  3. 更新源列表,並使用 unixODBC 開發人員包運行安裝命令。

    sudo apt-get update 
    sudo apt-get install mssql-tools unixodbc-dev

    備註

    若要將 mssql-tools 更新至最新版本,請運行如下命令 :

    sudo apt-get update 
    sudo apt-get install mssql-tools
  4. 可選:向 bash shell 中的 PATH 環境變量添加 /opt/mssql-tools/bin/ 。

    要使 sqlcmd/bcp 能從登錄會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bash_profile 文件中的 PATH :

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

    要使 sqlcmd/bcp 能從交互式/非登陸會話的 bash shell 進行訪問,請使用下列命令修改 ~/.bashrc 文件中的 PATH :

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

本地鏈接

如下步驟使用 sqlcmd 本地鏈接到新的 SQL Server 實例。

  1. 使用 SQL Server 名稱 (-S),用戶名 (-U) 和密碼 (-P) 的參數運行 sqlcmd 。 在本教程中,用戶進行本地鏈接,所以服務器名稱爲 localhost。 用戶名爲 SA,密碼是在安裝過程當中爲 SA 賬戶提供的密碼。

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

    提示

    能夠在命令行上省略密碼,以收到密碼輸入提示。

    提示

    若是之後決定進行遠程鏈接,請指定 -S 參數的計算機名稱或 IP 地址,並確保防火牆上的端口 1433 已打開。

  2. 若是成功,應會顯示 sqlcmd 命令提示符:1>

  3. 若是鏈接失敗,先嚐試診斷錯誤消息中所述的問題。 而後查看鏈接故障排除建議

建立和查詢數據

下面各部分將逐步介紹如何使用 sqlcmd 新建數據庫、添加數據並運行簡單查詢。

新建數據庫

如下步驟建立一個名爲 TestDB 的新數據庫。

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

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

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

    GO

提示

若要詳細瞭解如何編寫 Transact-SQL 語句和查詢,請參閱教程:編寫 Transact-SQL 語句

插入數據

接下來建立一個新表 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 命令提示符

要結束 sqlcmd 會話,請鍵入 QUIT

QUIT
相關文章
相關標籤/搜索