Ubuntu下部署SQL Server 2017
SQL Server 2017 最近已正式發(fā)布。這是 SQL Server 歷史上***同時(shí)發(fā)布 Windows 和 Linux 版。此外,微軟還發(fā)布了能使用 Docker 部署的容器版本。對(duì) SQL Server 而言,這是其歷史上具有里程碑意義的一步,因?yàn)檫@是跨出 Windows 的***個(gè)版本,標(biāo)志著 SQL Server 在 Linux 平臺(tái)上***可用。
SQL Server 2017 新版本成為***個(gè)云端、跨不同操作系統(tǒng)的版本,包括 Linux、Docker。SQL Server 2017 目前支持的 Linux 發(fā)行版包括:Red Hat Enterprise Linux(RHEL), SUSE Linux Enterprise Server 和 Ubuntu。SQL Server 2017 支持 Docker 企業(yè)版,Kubernetes 和 OpenShift 這三大容器平臺(tái)。
SQL Server 2017 新特性
- SQL Server 2017 支持使用 R 和 Python 的分析方法,來(lái)做資料庫(kù)內(nèi)的機(jī)器學(xué)習(xí),意味著不必遷移資料,省下不少時(shí)間。
- 圖數(shù)據(jù)分析功能將使客戶能夠使用圖形數(shù)據(jù)存儲(chǔ)和查詢語(yǔ)言擴(kuò)展來(lái)使用原生的圖形查詢語(yǔ)法,以便在高度互連的數(shù)據(jù)中發(fā)現(xiàn)新的關(guān)系。
- 自適應(yīng)查詢處理可為數(shù)據(jù)庫(kù)帶來(lái)更智能的體驗(yàn)。例如,SQL Server 中的 Adaptive Memory Grants 跟蹤并了解對(duì)給定的查詢使用了多少內(nèi)存,以調(diào)整內(nèi)存的使用。
- Automatic Plan Correction 通過(guò)查找和修正性能的回歸來(lái)確保持續(xù)的性能。
SQL Server 2017 的核心功能在 Windows 和 Linux 上保持一致,但有少部分依賴于 Windows 功能的特性沒(méi)有提供給 Linux (例如集群支持和集成 Windows 身份驗(yàn)證)。
本文將介紹如何在 Ubuntu 下部署 SQL Server 2017 。
安裝 SQL Server 2017
在 Linux 上 安裝 SQL Server 2017 的先決條件
設(shè)備類型 | 設(shè)備要求 |
---|---|
內(nèi)存 | 3.25 GB 及以上 |
文件系統(tǒng) | XFS或EXT4 (其他文件系統(tǒng),如BTRFS,不支持) |
磁盤空間 | 6 GB |
處理器速度 | 2 GHz |
處理器核心 | 2 核 |
處理器類型 | 僅 x64 兼容 |
安裝 SQL Server 2017 服務(wù)端
- 導(dǎo)入公共存儲(chǔ)庫(kù) GPG 密鑰
- $ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- 增加 Microsoft SQL Server Ubuntu 倉(cāng)庫(kù)
- $ add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
- 安裝 SQL Server 服務(wù)端
- $ apt-get update
- $ apt-get install -y mssql-server
- 設(shè)置 SA 密碼,并選擇要安裝的版本
- $ /opt/mssql/bin/mssql-conf setup
- Choose an edition of SQL Server:
- 1) Evaluation (free, no production use rights, 180-day limit)
- 2) Developer (free, no production use rights)
- 3) Express (free)
- 4) Web (PAID)
- 5) Standard (PAID)
- 6) Enterprise (PAID)
- 7) Enterprise Core (PAID)
- 8) I bought a license through a retail sales channel and have a product key to enter.
- Details about editions can be found at
- https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409
- Use of PAID editions of this software requires separate licensing through a
- Microsoft Volume Licensing program.
- By choosing a PAID edition, you are verifying that you have the appropriate
- number of licenses in place to install and run this software.
- Enter your edition(1-8): 1
- The license terms for this product can be found in
- /usr/share/doc/mssql-server or downloaded from:
- https://go.microsoft.com/fwlink/?LinkId=855864&clcid=0x409
- The privacy statement can be viewed at:
- https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
- Do you accept the license terms? [Yes/No]:yes
- Enter the SQL Server system administrator password:
- Confirm the SQL Server system administrator password:
- Configuring SQL Server...
- The licensing PID was successfully processed. The new edition is [Enterprise Evaluation Edition].
- Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service.
- Setup has completed successfully. SQL Server is now starting.
一共提供了 8 個(gè)版本供選擇,其中自由授予許可版本有:評(píng)估、開(kāi)發(fā)人員和快速。
SA 帳戶必須為強(qiáng)密碼(最少 8 個(gè)字符,包括大寫和小寫字母、十進(jìn)制數(shù)字和/或非字母數(shù)字符號(hào))。
- 驗(yàn)證服務(wù)是否正在運(yùn)行
- $ systemctl status mssql-server
- ● mssql-server.service - Microsoft SQL Server Database Engine
- Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
- Active: active (running) since Thu 2017-10-12 11:50:29 CST; 1min 22s ago
- Docs: https://docs.microsoft.com/en-us/sql/linux
- Main PID: 20776 (sqlservr)
- CGroup: /system.slice/mssql-server.service
- ├─20776 /opt/mssql/bin/sqlservr
- └─20796 /opt/mssql/bin/sqlservr
安裝 SQL Server 2017 命令行工具
如果要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù),需要使用客戶端工具 sqlcmd 和 bcp。
- 導(dǎo)入公共存儲(chǔ)庫(kù) GPG 密鑰
- $ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- 增加 Microsoft Ubuntu 倉(cāng)庫(kù)
- $ add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
- 安裝 SQL Server 命令行工具 和 unixODBC 開(kāi)發(fā)人員工具包
- $ apt-get update
- $ apt-get install -y mssql-tools unixodbc-dev
Sqlcmd 工具默認(rèn)安裝到 /opt/mssql-tools/bin/ 中的,為方便使用把 /opt/mssql-tools/bin/ 添加到環(huán)境變量中。
- $ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
- $ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
- $ source ~/.bashrc
Sqlcmd 是用于連接到 SQL Server 以運(yùn)行查詢并執(zhí)行管理和開(kāi)發(fā)的一個(gè)命令行工具。如果要使用功能更強(qiáng)大的圖形工具,可使用 SQL Server Management Studio 或 Visual Studio Code 的 mssql 插件。
- 使用 Sqlcmd 建立本地連接
Sqlcmd 連接到本地的 SQL Server 實(shí)例。密碼是在安裝過(guò)程中配置的 SA 帳戶密碼。
- $ sqlcmd -S localhost -U SA -P '<YourPassword>'
參數(shù)說(shuō)明
- -S 連接 SQL Server 的機(jī)器名
- -U 連接 SQL Server 的用戶名
- -P 連接 SQL Server 的密碼
連接成功,應(yīng)會(huì)顯示 Sqlcmd 命令提示符:1>,就類似下面這樣
- $ sqlcmd -S localhost -U SA
- Password:
- 1>
創(chuàng)建數(shù)據(jù)庫(kù)和查詢數(shù)據(jù)
新建數(shù)據(jù)庫(kù)
- 創(chuàng)建一個(gè)名為 TestDB 的新數(shù)據(jù)庫(kù)
在 sqlcmd 命令提示符中,執(zhí)行 Transact-SQL 命令以創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)。
- 1> CREATE DATABASE TestDB
在 SQL Server 中 命令并沒(méi)有立即執(zhí)行, 必須在新行中鍵入 GO 才能執(zhí)行命令。
- 2> GO
- 返回服務(wù)器上所有數(shù)據(jù)庫(kù)的名稱
- 1> SELECT Name from sys.Databases
- 2> GO
- Name
- ----------------------------------------
- master
- tempdb
- model
- msdb
- TestDB
- (5 rows affected)
插入數(shù)據(jù)
- 創(chuàng)建一個(gè)新表 Inventory,然后插入兩個(gè)新行。
在 sqlcmd 命令提示符中,切換到新的 TestDB 數(shù)據(jù)庫(kù)。
- 1> USE TestDB
創(chuàng)建名為 Inventory 的新表
- 2> CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
將數(shù)據(jù)插入新表
- 3> INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
批量執(zhí)行上述命令
- 4> GO
整個(gè)執(zhí)行過(guò)程如下
- 1> USE TestDB
- 2> 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
- Changed database context to 'TestDB'.
- (1 rows affected)
- (1 rows affected)
- 查詢數(shù)據(jù)
通過(guò) sqlcmd 命令查詢 Inventory 表中數(shù)量大于 152 的行
- 1> SELECT * FROM Inventory WHERE quantity > 152;
- 2> GO
- id name quantity
- ------ ------------ -----------
- 2 orange 154
- (1 rows affected)
- 退出 sqlcmd
要結(jié)束 sqlcmd 會(huì)話,請(qǐng)鍵入 QUIT。
- 1> QUIT
卸載 SQL Server 2017
若要?jiǎng)h除 SQL Server 2017,可使用以下命令
- $ apt-get remove mssql-server
刪除包不會(huì)刪除生成的數(shù)據(jù)庫(kù)文件。 如果你想要?jiǎng)h除的數(shù)據(jù)庫(kù)文件,可使用以下命令
- $ sudo rm -rf /var/opt/mssql/
***在推薦下微軟良心出品 Visual Studio Code 這個(gè)編輯器,功能異常強(qiáng)大、跨平臺(tái)并且是開(kāi)源的。最最最重要的是它比 Atom 快,插件也很豐富。我已從 Atom 轉(zhuǎn)坑入 VSCode了,感謝蝸牛大神的推薦!
下圖為 VSCode+MSSQL 插件的效果圖,有沒(méi)有很贊的~
參考文檔
http://www.google.com
https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu