在CentOS7上安裝SQL Server 2017


系統需求:

CentOS7.3以上,我目前用的是CenOS7.4
服務器至少3.25GB內存
好像對CPU沒有什么要求,我在虛擬機中配置的CPU為一核

一、安裝 SQL Server

1、下載 Microsoft SQL Server Red Hat 存儲庫配置文件:

[root@CentOS7 ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/

2、運行以下命令,安裝 SQL Server:

[root@CentOS7 ~]# yum update
[root@CentOS7 ~]# yum install -y mssql-server

3、運行包安裝完成后mssql-conf 安裝並按照提示操作以設置 SA 密碼,並選擇你的版本。

root@CentOS7 ~]# /opt/mssql/bin/mssql-conf setup

選擇 SQL Server 的一個版本:
  1) Evaluation (免費,無生產許可,180 天限制)
  2) Developer (免費,無生產許可)
  3) Express (免費)
  4) Web (付費版)
  5) Standard (付費版)
  6) Enterprise (付費版)
  7) Enterprise Core (付費版)
  8) 我通過零售渠道購買了許可證並具有要輸入的產品密鑰。

可在以下位置找到有關版本的詳細信息:
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x804

使用此軟件的付費版本需要通過以下途徑獲取單獨授權
Microsoft 批量許可計划。
選擇付費版本即表示你具有適用的
要安裝和運行此軟件的就地許可證數量。

輸入版本(1-8): 1

為了測試該版本數據庫的全部功能,我這里選擇的是 1Evaluation版本,如果不是為了測試的話,可以選擇2Developer 或者 3 Express這二個版本。如果你是購買了正式版序列號的用戶,可以根據情況選擇4-8的各個版本。

然后系統會提示你是否同意許可條款,當然輸入yes了 

可以在以下位置找到此產品的許可條款:
/usr/share/doc/mssql-server 或從以下位置下載:
https://go.microsoft.com/fwlink/?LinkId=855864&clcid=0x804

可以從以下位置查看隱私聲明:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x804

接受此許可條款嗎? [Yes/No]:yes

下面是選擇語言:

選擇 SQL Server 的語言:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Русский
(10) 中文 – 簡體
(11) 中文 (繁體)
輸入選項 1-11:10

這個不用說了吧,選擇10

接下來設置SQL密碼,輸入二次。
請確保為 SA 帳戶指定強密碼(最少 8 個字符,包括大寫和小寫字母、十進制數字和/或非字母數字符號):

輸入 SQL Server 系統管理員密碼:123456
確認 SQL Server 系統管理員密碼:123456

在安裝的最后,系統會提示如下:

正在配置 SQL Server...

Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
安裝程序已成功完成。SQL Server 正在啟動。

4、配置完成后,請驗證服務是否正在運行:

[root@CentOS7 ~]# systemctl status mssql-server
● mssql-server.service - Microsoft SQL Server Database Engine
   Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2017-10-05 14:19:18 CST; 21s ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
 Main PID: 1208 (sqlservr)
   CGroup: /system.slice/mssql-server.service
           ├─1208 /opt/mssql/bin/sqlservr
           └─1228 /opt/mssql/bin/sqlservr
............
(以下進行省略)

如果運行結果如上(●正常是綠顏色的)就是服務正常運行了。
5、若要允許遠程連接,請打開防火牆上的 SQL Server 端口。
默認的 SQL Server 端口為 TCP 1433。 如果你使用FirewallD防火牆,可以使用以下命令添加規則:

[root@CentOS7 ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
success
[root@CentOS7 ~]# firewall-cmd --reload
success

當然如果你的服務器前端是有防火牆進行保護的,也可以不用運行上述命令,而是直接將系統的防火牆關閉。使用如下命令關閉firewallD防火牆並設置為開機不自動啟動:

[root@CentOS7 ~]# systemctl stop firewalld

[root@CentOS7 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

以上就完成了SQL Server 2017的安裝

轉移存儲位置:

  1. 可以通過客戶端進行鏈接數據點擊屬性=>數據庫設置查看數據庫默認位置/var/opt/mssql/data
  2. 新建目錄
     mkdir -p /home/mssql/data
  3. 運行以下命令以更改此目錄的所有者
  4. #Run below命令將此目錄的所有者和組更改為用戶“mssql”

    sudo chown mssql /home/mssql/data
    
    sudo chgrp mssql /home/mssql/data
    
    sudo chown mssql /home/mssql/log
    
    sudo chgrp mssql /home/mssql/log

     

  5. 現在通過下面的命令執行這個腳本,將默認的數據庫文件位置更改為/home/mssql/data
  6. sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /home/mssql/data
    
    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /home/mssql/log
  7. 重啟數據庫
  8. systemctl restart mssql-server

    同時把之前的數據庫默認文件轉移過來

    參考文章:

  9. https://www.mssqltips.com/sqlservertip/4652/how-to-change-default-data-and-log-file-directory-for-sql-server-running-on-linux/
  10. https://www.sqlshack.com/configure-sql-server-2017-linux-mssql-conf-available-tools/

 

二、安裝 SQL Server 命令行工具

以下步驟安裝 SQL Server 命令行工具: sqlcmd和bcp。

1、下載安裝源。

[root@CentOS7 ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

2、安裝mssql 工具與 unixODBC 開發人員包

[root@CentOS7 ~]# yum update
[root@CentOS7 ~]# yum install -y mssql-tools unixODBC-devel

安裝之前系統會提示你必須同意相關許可,注意:需要輸入大寫的YES

The license terms for this product can be downloaded from
https://aka.ms/odbc131eula and found in
/usr/share/doc/msodbcsql/LICENSE.TXT . By entering 'YES',
you indicate that you accept the license terms.

Do you accept the license terms? (Enter YES or NO)
YES
  正在安裝    : msodbcsql-13.1.9.1-1.x86_64                                      3/5
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.

Do you accept the license terms? (Enter YES or NO)
YES
.............
(以下進行省略)

3、添加/opt/mssql-tools/bin/到環境變量

[root@CentOS7 ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
[root@CentOS7 ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
[root@CentOS7 ~]# source ~/.bashrc

三、使用sqlcmd進行本地連接

1、使用 SQL Server 名稱 (-S),用戶名 (-U) 和密碼 (-P) 的參數運行 sqlcmd:

[root@CentOS7 ~]# sqlcmd -S localhost -U SA -P '<YourPassword>'

但使用-P參數存在安全性問題,可以不輸入-P及其后面的部分,而直接輸入如下命令:

[root@CentOS7 ~]# sqlcmd -S localhost -U SA
Password:

這時系統會提示你輸入sa密碼,輸入后回車

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

四、創建和查詢數據

1、新建數據庫:

1> create database TestDB
2> select name from sys.Databases
3> go

運行結果如下:

name                                                                                 
--------------------------------------------------------------------------------------------------------------------------------
master                                                                               
tempdb                                                                               
model                                                                                
msdb                                                                                 
TestDB                                                                               

(5 rows affected)

2、插入數據

1> use testdb
2> go
已將數據庫上下文更改為 "TestDB"1> create table Inventory(id int, name nvarchar(50), quantity int)
2> go
1> insert into inventory values(1,'banana',150);
2> insert into inventory values(2,'orange',154);
3> go

(1 rows affected)

(1 rows affected)

3、選擇數據

1> select * from inventory
2> go
id          name                                               quantity
----------- -------------------------------------------------- -----------
          1 banana                                                     150
          2 orange                                                     154

(2 rows affected)

4、退出 sqlcmd 命令提示符

1> quit

五、從 Windows 進行連接

從Windows連接到已經安裝的SQL Server的話,需要安裝 SQL Server Management Studio (SSMS)。
官方文檔里說安裝完成SSMS后就可以使用powershell從命令行進行遠程連接,但我始終沒有辦法import相關模塊,再說如果需要安裝SSMS的話,誰還會使用Powershell啊。

可以到微軟官方下載頁面中下載SSMS,也可以直接使用下面這個鏈接:https://download.microsoft.com/download/C/3/D/C3DBFF11-C72E-429A-A861-4C316524368F/SSMS-Setup-CHS.exe
安裝文件大約800MB,下載完成直接安裝即可。

運行SQL命令可以參照在本地命令行中使用sqlcmd運行的相關命令。運行結果如下圖:
————————————————
版權聲明:本文為CSDN博主「cmzsteven」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/cmzsteven/article/details/78161516

 

 

 

六、更新SQL Server

運行如下命令:

[root@CentOS7 ~]# yum update mssql-server

七、卸載 SQL Server

執行如下命令:

[root@CentOS7 ~]# yum remove mssql-server

刪除包不會刪除生成的數據庫文件。 如果你想要刪除的數據庫文件,使用以下命令:

[root@CentOS7 ~]# rm -rf /var/opt/mssql/

八、脫機安裝SQL Server

1、下載rpm包:
Microsoft 存儲庫下載目錄:
https://packages.microsoft.com/sles/12/mssql-server-2017/
執行如下命令下載安裝包:

[root@CentOS7 ~]# wget https://packages.microsoft.com/sles/12/mssql-server-2017/mssql-server-14.0.1000.169-2.x86_64.rpm

2、解決依賴關系:

[root@CentOS7 ~]# rpm -qpR mssql-server_versionnumber.x86_64.rpm

3、安裝數據庫引擎:

[root@CentOS7 ~]# yum localinstall mssql-server_versionnumber.x86_64.rpm

或者:

[root@CentOS7 ~]# rpm -ivh mssql-server_versionnumber.x86_64.rpm

使用rpm -ivh命令可以最大程序的解決依賴關系問題。

4、使用mssql-conf完成 SQL Server 安裝:

[root@CentOS7 ~]# /opt/mssql/bin/mssql-conf setup

 


免責聲明!

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



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