ติดตั้ง SQL Server 2019 บน Ubuntu 18.04

ทาง Microsoft ได้ออก SQL Server ที่ติดตั้งบนลีนุกซ์ได้มานานพอสมควรล่ะ โดยเวอร์ชันล่าสุดตอนนี้เป็น 2019 สามารถรันได้บนลีนุกซ์หลายเวอร์ชันทั้ง Red Hat, SUSE หรือ Ubuntu

ลองมาดูขั้นตอนการติดตั้ง Microsoft SQL Server 2019 บน Ubuntu 18.04 กัน

หมายเหตุ สำหรับ SQL Server บน Ubuntu 20.04 ทาง Microsoft ยังไม่ได้ support อย่างเป็นทางการ จริงๆ ก็พอลงได้ แต่เกรงจะมีปัญหาเลยลองกับ 18.04 ก่อน

ติดตั้ง SQL Server

ติดตั้ง GPG Key เพื่อใช้ตรวจสอบความถูกต้อง เวลาติดตั้งแพ็คเกจ

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

เพิ่ม Microsoft SQL Server Ubuntu repository เข้ามาในเครื่อง

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

รันคำสั่ง apt เพื่อติดตั้งแพ็คเกจ SQL Server

$ sudo apt update

$ sudo apt install -y mssql-server

รันคำสั่ง mssql-conf setup เพื่อคอนฟิกค่าเริ่มต้นของ SQL Server

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

supasin@u18-sql2019:~$ sudo /opt/mssql/bin/mssql-conf setup
usermod: no changes
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) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
  7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
  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=2109348&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):

เลือก edition ของการใช้งาน

ในที่นี้ขอเลือก 3 ซึ่งเป็นแบบ Express

ในส่วนถัดมาจะเป็นเรื่อง License ต้องตอบ Yes เพื่อยอมรับ

The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&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

ถัดไปจะให้ระบุรหัสผ่านของ sa

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 [Express Edition].
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.

การคอนฟิก SQL Server เสร็จเรียบร้อย

รันคำสั่ง systemctl status เพื่อตรวจสอบสถานะการรัน SQL Server

$ systemctl status mssql-server --no-pager
● mssql-server.service - Microsoft SQL Server Database Engine
   Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-11-25 05:36:43 UTC; 39s ago
     Docs: https://docs.microsoft.com/en-us/sql/linux
 Main PID: 3105 (sqlservr)
    Tasks: 137
   CGroup: /system.slice/mssql-server.service
           ├─3105 /opt/mssql/bin/sqlservr
           └─3148 /opt/mssql/bin/sqlservr

Nov 25 05:36:51 u18-sql2019 sqlservr[3105]: [155B blob data]
Nov 25 05:36:51 u18-sql2019 sqlservr[3105]: [61B blob data]
Nov 25 05:36:52 u18-sql2019 sqlservr[3105]: [96B blob data]

บรรทัด Active ต้องขึ้นว่า active (running) เพื่อแสดงว่าเซอร์วิสรันอยู่

ติดตั้ง SQL Server tools

ขั้นต่อมา หากต้องการใข้คำสั่งเพื่อเชื่อมต่อกับ SQL Server เช่น sqlcmd จะต้องติดตั้งแพ็คเกจเพิ่มเติม

ติดตั้ง Repository ที่เก็บแพ็คเกจ tools

$ curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

รันคำสั่ง apt เพื่อติดตั้งแพ็คเกจ mssql-tools

$ sudo apt update 

$ sudo apt install -y mssql-tools unixodbc-dev

ตัวอย่างที่อยู่ของไฟล์คำสั่งที่ได้จากการติดตั้ง

$ ls -l /opt/mssql-tools/bin/
total 612
-rwxr-xr-x 1 root root 197544 Jul  4 05:48 bcp
-rwxr-xr-x 1 root root 421976 Jul  4 05:48 sqlcmd

เนื่องจาก /opt/mssql-tools/bin/ ไม่อยู่ในพาธมาตรฐาน เราต้องเพิ่มคอนฟิก PATH

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

$ source  ~/.bash_profile

ทดลองรันคำสั่ง sqlcmd เพื่อเชื่อมต่อกับ SQL Server

sqlcmd

ข้อมูลเพิ่มเติม