[MSSQL] Install MS SQL Server 2016 on Ubuntu

หลังจากที่ Microsoft ได้ปล่อยตัว Microsoft SQL Server - Linux Edition กันแล้ว วันนี้ได้เวลามาลองลงกันครับ ดูกันว่า MS SQL 2016 จะลงง่าย หรือ ยากกว่าตัว DB2 ที่ได้ทดสอบไปในคร้ังที่แล้วครับ

เตรียมพร้อมก่อนลุย

  • RAM 3.25 GB - ถ้าทำใน VM Set เผื่อเป็น 4 GB ไปเลยย ถ้าพื้นที่ไม่พอเวลา Install เจอมันด่า แบบนี้
  • Internet

ลุยกันเลยยย

  • Import ตัว public repository GPG keys ด้วยคำสั่ง
    sudo sh -c "curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -"

  • Register ตัว Microsoft SQL Server Ubuntu repository ที่ /etc/apt/sources.list.d/sql-server.list: ด้วยคำสั่ง
    sudo sh -c "echo deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/mssql-server xenial main > /etc/apt/sources.list.d/sql-server.list"
    sudo sh -c "echo deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/prod xenial main >> /etc/apt/sources.list.d/sql-server.list"
  • ลงตัว MS SQL Server และตัว MS SQL Server Tools ด้วยคำสั่ง
    sudo apt-get update
    sudo apt-get install mssql-server mssql-tools -y

    บางครั้งมีหน้าจอแบบนี้เด้งขึ้นมาถาม ให้กด Yes ครับ

    รอจนเสร็จครับ ขั้นตอนนี้นานนิดนึง

  • จากนั้น Run คำสั่ง เพื่อ Config MS SQL Server ดังนี้
    sudo /opt/mssql/bin/sqlservr-setup

    • สิ่งที่ตัว Config ถามมี ดังนี้
    • ยอมรับใน License ไหม (YES)
    • ตั้ง Password ของ User System Administrator (SA) โดยมีข้อกำหนด ขั้นต่ำ 8 ตัวอักษร และมีการผสมระหว่างอักษรตัวใหญ่ เล็ก และตัวเลข
    • Start Service ไหม ? (Y/N)
    • ตั้ง Auto Start ให้ Service ไหม ? (Y/N)

ตรวจสอบ

  • ดูสถานะของ MS SQL Server ด้วยคำสั่ง
    systemctl status mssql-server

  • ลอง Connect
    sqlcmd -S localhost -U SA -P 'YourSAPasswordHere!!!!!'
  • ทดสอบสร้าง DB
    CREATE DATABASE TESTDB
    GO
  • Query DB ที่มีในระบบ
    SELECT Name from sys.Databases;
    GO
  • ลองสร้าง Table
    CREATE TABLE dbo.HOLDINGEQUITY(id INT, SECURITYNAME NVARCHAR(50), UNIT decimal(5,2));
    GO
  • ลอง Insert Data
    INSERT INTO dbo.HOLDINGEQUITY VALUES (1, 'IFEC', 500.00);
    INSERT INTO dbo.HOLDINGEQUITY VALUES (2, 'PDI', 200.23);
    GO
  • ลง SELECT
    SELECT * FROM dbo.HOLDINGEQUITY 
    GO

Reference