1. 程式人生 > >SQL Server On Linux(1)——CentOS 7 安裝SQL Server2019

SQL Server On Linux(1)——CentOS 7 安裝SQL Server2019

前言

SQL Server 2019已經正式公佈,雖然只是preview版,但是不影響我們追求新的技術。接下來的一個系列,隨著本人的研究,儘量讓這個系列成為“教程”,真正的入門到精通。

環境準備

  不廢話,先把研究環境搭建起來。由於某些原因(晚點再說),本系列首先使用CentOS 7作為作業系統。官方指引中支援的Linux平臺及檔案系統中並沒有指出CentOS,但是作為與Red Hat同源的Linux發行版,幾乎與Red Hat無差別地使用。所以這裡使用CentOS 7作為演示,下圖是官方要求裡面的部分截圖。

SQL Server On Linux支援的平臺
  安裝CentOS可以很簡單,也可以很複雜,這裡不想那麼快提升複雜度,所以讀者可以自行找一個虛擬機器(今時今日沒幾臺虛擬機器在手很難學習這些系統級別的東西)然後安裝CentOS即可。下面是本系列中使用的一些資訊:
在這裡插入圖片描述

  在安裝之前我們還需要習慣性檢查一下環境,下面對上圖的資訊進行檢查,分別對OS版本、檔案系統、CPU和記憶體進行檢查。

作業系統資訊

  一般可以使用cat /etc/*-releasecat /proc/versionlsb_release -a(不是每個Linux都預裝) 來獲取。下面演示第一和第二個命令,第三個命令由於在CentOS 7 中未預裝,所以也就不額外安裝演示。

  • /etc/*-release
      這是作者優先使用的命令,理由是第一個找到的命令。
    在這裡插入圖片描述
  • /proc/version
    在這裡插入圖片描述

檔案系統資訊

  這裡要查詢的是是否為XFS或EXT4及其空間大小是否足夠,作者使用df -Th

來實現,命令解釋可以使用man df來獲取,本機結果如下圖,Type表示檔案系統型別,Size是大小,不過注意由於df命令使用了h選項使其human-readable,所以在從KB轉換成GB過程產生少量誤差(即Size≠Used+Avail),但是這個無傷大雅。
在這裡插入圖片描述
  還可以用lsblk來實現,並且可能在某些情況下比df更直觀:
在這裡插入圖片描述

CPU資訊

  作者比較喜歡lscpu,檢視CPU資訊的命令有很多,包括查詢其他資訊,在Linux中很容易讓初學者混亂,作者建議“夠用就好”,然後在過程中收集一些命令並逐步完善一個列表,什麼時候用什麼命令。這可能是成長的最快方式,要相信“你的努力,時間看得見”。
在這裡插入圖片描述

記憶體

  這個比較常用free -m
在這裡插入圖片描述

  上面的資訊中的細節的東西以後再說。這裡只演示如何獲取必要的資訊。

SQL Server 線上安裝

  接下來我們進行預設安裝,SQL Server On Linux可以線上、離線(下載安裝包)和無人值守安裝,這裡使用最常見的線上安裝做演示,所以首先你的作業系統能訪問公網。另外說一句,作業系統安裝好之後,強烈建議更新Linux的軟體版本。Ubuntu使用sudo apt-get update && sudo apt-get upgrade實現。CentOS使用su -c 'yum update'實現,如果不是使用***root***執行,則需要輸入root密碼。
  SQL Server On Linux的安裝分3步:

  1. 配置軟體儲存庫(software repository):實際上就是配置下載路徑。
  2. 安裝SQL Server:Linux會從儲存庫中找到安裝路徑然後自動下載並做初始化安裝。
  3. 必要配置:主要是版本選擇、sa密碼。

說明
  假設你已經在Windows上安裝過SQL Server 2008或以上版本(2005和2000有所不同,年代也久遠,這裡不討論),那麼在接下來你會感受得到很多不一樣的地方,這裡先做個概要說明:

  • 無介面操作:雖然現在很多Linux版本也有介面,但是畢竟不是我們應該學習的東西。所以本系列堅持使用Server版的命令列形式進行。
  • 安裝、解除安裝速度快:如果在Windows上裝過和解除安裝過SQL Server,會發現其實是一件很費時的操作。但是Linux則不同。
  • 可選內容:Windows上的安裝過程需要人工干預的地方非常多,這個有好有不好,好處是你在安裝時大部分東西已經按需配置,不好的地方是當你要大批量安裝相同的SQL Server時,時間和工作量很大。Linux上大部分的配置都是後續進行的,我們可以很快地安裝完SQL Server的核心,然後通過shell指令碼批量執行配置(當然Windows上也可以)。
  • 安裝包大小:本文釋出之時,Linux上的SQL Server安裝包僅僅是幾百MB,而Windows上雖然包含的功能豐富,但是也意味著安裝包很大,需要GB級別。

  接下來就實際演示安裝過程,非常簡單,本操作為了減少不必要的麻煩,均以root執行,如果讀者不以root執行,請在各命令前加上sudo 並輸入對應的密碼

  1. 配置儲存庫並下載SQL Server 2019所需的Red Hat儲存庫配置檔案:
# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo

  結果如下圖:
在這裡插入圖片描述

  1. 安裝SQL Server:
# yum install -y mssql-server

  部分過程略過,畢竟Linux的刷屏能力還是很強的
在這裡插入圖片描述
  如果看到下圖的兩個紅框部分,證明成功完成:
在這裡插入圖片描述
  根據提示,要執行sudo /opt/mssql/bin/mssql-conf setup來完成真正的安裝。

  1. 設定SA密碼並選擇版本
       第三步本質上就是安裝,這一步是安裝過程的配置,使用的是mssql-conf setup命令,按照提示我們輸入
# /opt/mssql/bin/mssql-conf setup

  命令執行後會看到下圖中的提示,這是需要互動的,首先是選擇版本,用過SQL Server的人應該都清楚,這裡就不多說,一般建議使用評估版或者開發版,但是注意真正跟企業版完全一致的只有評估版,開發版有點差異,但是對大部分人來說這個差異沒什麼影響。同時注意有一個需要輸入“yes”接受License。然手是sa的密碼,這個密碼強度當然要足夠高,最後就是選擇SQL Server的語言,如果是新裝的環境,作者還是建議使用(1)即英語,畢竟這是老外的產品,在Windows上的SQL Server,作者也很少用簡體中文,除非是直接升級當前系統(前提是這個系統也使用簡體中文)。
在這裡插入圖片描述
  接下來Linux會繼續安裝步驟,當完成時會看到下圖。
在這裡插入圖片描述
  到此為止,SQL Server引擎的安裝就完成了,你可以用SSMS或者另外一個作者最近在研究的跨平臺工具“SQL Operations Studio”來訪問。如果發現訪問不了,那很可能是防火牆的問題。

  1. 配置防火牆
      SQL Server使用TCP 1433作為預設埠,作者的Linux和網路環境控制相對較鬆,所以可以直接訪問,但是如果在實際企業環境中,那麼可能埠會預設被防火牆遮蔽,可以使用下面命令或者針對不同Linux發行版的對應命令來放行TCP 1433。
# firewall-cmd --zone=public --add-port=1433/tcp --permanent
# firewall-cmd --reload

  下面是本人使用SQL Operations Studio進行連線訪問的截圖:
在這裡插入圖片描述

  按照官方的順序,還需要配置sqlcmd等,但是這裡作為快速入門,不打算介紹,畢竟有SSMS等工具的情況下,sqlcmd幾乎沒有什麼存在的必要(唯一可能要用到的場景可以看本人另外一篇文章:使用SQLCMD在SQLServer執行多個指令碼)。
  作為本文的最後一步,就是檢查一下SQL Server的服務狀態:

# systemctl status mssql-server

  結果如圖,服務是running狀態。
在這裡插入圖片描述

  暫時不要關注太多命令細節,接下來的路還長著呢,本人寫這系列的文章是為了深究技術細節,所以很快就會~在這裡插入圖片描述

總結

  本文為了後續研究,快速地在CentOS 7 上安裝了SQL Server 2019,這個過程忽略了官方教程中的其他部件,但是在需要的時候,也會一起安裝上去。
  由於網上資料已經很多,所以本文不打算用一篇的篇幅來安裝一個完整的SQL Server On Liunx環境,而是從邏輯上拆分出來,先有一個“可用”環境為主,接下來就要開始對這個環境進行折騰。折騰的內容從本文的截圖紅框開始。敬請期待!SQL Server On Linux(2)——SQL Server 2019 For Linux安裝過程細節研究

命令總結

  作為非Linux專業人士,作者只能多練習,多總結,不管你覺得有沒有用,作者還是打算在每篇文章中,儘可能列出用到的Linux命令,用於快速查詢和整理。

  • 作業系統資訊:
  •  OS 版本:`# cat /etc/*-release`、`# cat /proc/version`
    
  •  檔案系統:`# df -Th`、`# lsblk`
    
  •  CPU資訊:`# lscpu`
    
  •  記憶體資訊:`# free -m`
    
  • 作業系統更新:
  •  更新軟體:`sudo apt-get update && sudo apt-get upgrade` 、`su -c 'yum update'`
    
  • 防火牆:
  •  開放埠:`# firewall-cmd --zone=public --add-port=1433/tcp --permanet` 然後 `# firewall-cmd --reload`
    

資訊總結

  這部分的用處也是快速查詢,因為作者對Linux還不夠熟悉,很多資訊需要反反覆覆查詢,所以作者也對此進行總結:

  • SQL Server On Linux 預設服務賬號:mssql
  • SQL Server On Linux 預設資料庫檔案存放目錄:/var/opt/mssql/data
  • SQL Server On Linux 錯誤日誌(errorlog)預設目錄:/var/opt/mssql/log