ฉันจะติดตั้ง MSSQL Server และ / หรือเครื่องมือสำหรับ Linux บน 16.04 ได้อย่างไร


14

โพสต์นี้สร้างขึ้นเพื่อพยายามและจับคู่คำถาม / คำตอบที่เป็นที่ยอมรับสำหรับ 'ฉันจะติดตั้งเซิร์ฟเวอร์ MSSQL ได้อย่างไร' และ 'ฉันจะติดตั้งเครื่องมือเซิร์ฟเวอร์ MSSQL ได้อย่างไร'

ฉันกำลังมองหาการตั้งค่า MS SQL Server สำหรับ Linux และอาจเป็นเครื่องมือ (บนเซิร์ฟเวอร์เองหรือระบบอื่น ๆ ) ดังนั้นฉันจึงสามารถโต้ตอบกับ SQL Server ได้ ฉันจะทำสิ่งนี้ได้อย่างไร


1
โปรดทราบว่าฉันมีเซิร์ฟเวอร์ MSSQL พร้อมใช้งานผ่าน 16.04 และเครื่องมือบนเซิร์ฟเวอร์เดียวกันนั้น ฉันใช้ MSSQL Management Studio จากคอมพิวเตอร์ Windows ของฉันเพื่อจัดการทุกอย่างและ DataGrip และอินเทอร์เฟซ Python อื่น ๆ สำหรับการใช้เซิร์ฟเวอร์ MSSQL และจัดการมัน
Thomas Ward

คำตอบ:


18

คำตอบนี้ครอบคลุมถึงการติดตั้งเซิร์ฟเวอร์ MSSQL และเครื่องมือสำหรับระบบ 16.04 ใด ๆ มันไม่ครอบคลุมโซลูชัน Docker เพื่อรับ MSSQL Server บนระบบ คำตอบที่แยกต่างหากจะถูกเขียนสำหรับเซิร์ฟเวอร์ MSSQL ผ่านตัวเลือกการติดตั้ง Docker สำหรับ SQL Server

มีองค์ประกอบที่แตกต่างกันสองสามอย่างที่นี่ในแพ็คเกจจากที่เก็บของ Microsoft เท่านั้น

  1. mssql-server - Microsoft SQL Server สำหรับ Linux ดูตัวอย่าง
  2. mssql-tools- sqlcmdคำสั่ง ฯลฯ เพื่อโต้ตอบกับเซิร์ฟเวอร์ MSSQL

มีคำเตือนที่ชั่วร้ายอยู่ที่นี่:

  1. คุณต้องมี 16.04 สำหรับส่วนประกอบทั้งหมด มันไม่ทำงานกับรุ่นเก่ากว่า
  2. ในขณะนี้มีแพ็คเกจรุ่น 64 บิตเท่านั้น คุณจะไม่สามารถเรียกใช้mssql-serverและอาจไม่ใช่เครื่องมือเช่นกันยกเว้นว่าคุณใช้ระบบ 64 บิต

คำสั่งทั้งหมดด้านล่างมาจากขั้นตอนที่ Microsoft แนะนำ ฉันไม่แนะนำให้ใช้คำสั่งเหล่านี้บางอย่างนอกเหนือจากการทำตามขั้นตอนเหล่านี้อย่างแน่นอนเนื่องจากลักษณะของความเสี่ยงด้านความปลอดภัยที่บางขั้นตอนที่นี่แนะนำ (เช่นการเข้าสู่ superuser shell)


mssql-serverขั้นตอนการติดตั้ง ( แหล่งที่มา )

ขั้นตอนเหล่านี้ครอบคลุมการตั้งค่า MS SQL Server สำหรับ Linux Public Preview นี่และวิธีนักเทียบท่าเป็นสองวิธีสำหรับการติดตั้ง MSSQL Server สำหรับ Linux

คำเตือน:

  1. คุณต้องมีระบบ 64 บิตสำหรับเซิร์ฟเวอร์ MSSQL
  2. คุณต้องมี RAM อย่างน้อย 4GB บนระบบเพื่อให้เซิร์ฟเวอร์ MSSQL ติดตั้ง
  3. คุณต้องมี Ubuntu 16.04 สำหรับสิ่งนี้ในปัจจุบันไม่มีรุ่นอื่น ๆ บนเซิร์ฟเวอร์ที่เก็บข้อมูลของพวกเขา

ในการติดตั้งmssql-serverแพ็คเกจบน Ubuntu ให้ทำตามขั้นตอนเหล่านี้:

  1. เข้าสู่โหมด superuser

    sudo su
    
  2. อิมพอร์ตคีย์ GPG ที่เก็บพับลิก:

    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    
  3. ลงทะเบียนที่เก็บ Ubuntu Microsoft SQL Server:

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
    
  4. ออกจากโหมด superuser

    exit
    
  5. เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง SQL Server:

    sudo apt-get update
    sudo apt-get install -y mssql-server
    
  6. หลังจากการติดตั้งแพคเกจเสร็จสิ้นให้เรียกใช้สคริปต์การกำหนดค่าและปฏิบัติตามคำแนะนำที่ปรากฏขึ้น

    sudo /opt/mssql/bin/mssql-conf setup
    
  7. เมื่อการกำหนดค่าเสร็จสิ้นให้ตรวจสอบว่าบริการกำลังทำงานอยู่:

    systemctl status mssql-server
    

ดู: Quickstart: ติดตั้ง SQL Server และสร้างฐานข้อมูลบนอูบุนตู


mssql-toolsขั้นตอนการติดตั้ง ( แหล่งที่มา )

ส่วนนี้ครอบคลุมถึงการตั้งค่าmssql-toolsซึ่งรวมถึงsqlcmdคำสั่ง ขั้นตอนเหล่านี้จำเป็นสำหรับระบบใด ๆ ที่คุณต้องการใช้sqlcmdคำสั่งหรือยูทิลิตี้อื่น ๆ ที่มาจาก Microsoft บน Linux เพื่อโต้ตอบกับเซิร์ฟเวอร์ MSSQL

(ไม่จำเป็นสำหรับไลบรารี Python อื่นสำหรับการโต้ตอบกับ MSSQL หรือยูทิลิตี้อื่น ๆ เช่น DataGrip ซึ่งสามารถโต้ตอบกับเซิร์ฟเวอร์ ฯลฯ ซึ่งไม่ต้องการmssql-toolspacakge ในการทำงาน)

คำเตือน:

  1. ฉันไม่พบรุ่นนี้สำหรับระบบที่ไม่ใช่ 64 บิต คุณอาจต้องใช้ระบบ 64 บิตเพื่อให้เครื่องมือเหล่านี้ทำงาน
  2. คุณสามารถใช้เครื่องมือได้ใน 16.04 เท่านั้นในขณะนี้
  1. เข้าสู่โหมด Superuser

    sudo su
    
  2. อิมพอร์ตคีย์ GPG ที่เก็บพับลิก:

    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    
  3. ลงทะเบียนที่เก็บ Microsoft Ubuntu:

    sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
    
  4. ออกจากโหมด superuser:

    exit
    
  5. อัพเดตรายการซอร์สและรันคำสั่งการติดตั้ง:

    sudo apt-get update
    sudo apt-get install mssql-tools
    


เช่นเดียวกับที่กล่าวถึงในโซลูชันนักเทียบท่า - ในที่นี้ก็ควรที่จะกล่าวว่าเซิร์ฟเวอร์ mssql จะทำงานเฉพาะในสถาปัตยกรรม amd64 เท่านั้น (ต่างจาก arm หรือ arm64 ที่มีให้บริการบนคลาวด์บางตัว)
userfuser

1
ที่น่าสังเกตว่าได้รับการเปลี่ยนชื่อเป็นsqlservr-setup mssql-conf setup
Tom

มันบอกว่าในsourcesql นั้นของคุณต้องการ 2GB และ 4GB 4GB ตามที่คุณกล่าวถึง
Offir Pe'er

9

ใช้นักเทียบท่า (amd64 เท่านั้น)

นอกจากนี้ยังเป็นไปได้ที่จะเรียกใช้เซิร์ฟเวอร์ MSSQL บน Ubuntu โดยใช้ Docker ซึ่งสามารถทำได้โดยทำตามขั้นตอนด้านล่างอย่างระมัดระวัง:

  1. หากคุณใช้ Ubuntu 14.04 หรือรุ่นอื่นที่เก่ากว่า Xenial (16.04)คุณจะต้องติดตั้ง Docker รุ่นใหม่กว่าที่คลังข้อมูลจัดเตรียมไว้ให้

    ถ้าเป็นเช่นนั้นทำตามคำแนะนำในหน้านี้

    ถ้าไม่เพียงแค่เรียกใช้:

    sudo apt-get install docker.io
    
  2. ตรวจสอบว่าคุณสามารถเชื่อมต่อกับ Local Docker daemon โดยใช้:

    docker info
    

    หากคุณได้รับข้อผิดพลาดเช่นCannot connect to the Docker daemon.คุณจะต้องเพิ่มตัวเองในdockerกลุ่ม:

    sudo usermod -a -G docker <USERNAME>
    

    ... ซึ่ง<USERNAME>จะถูกแทนที่ด้วยชื่อผู้ใช้ของคุณ คุณจะต้องออกจากระบบและกลับเข้ามาใหม่เพื่อให้การเปลี่ยนแปลงมีผล

  3. ดึงอิมเมจ MSSQL จาก Docker Hub:

    docker pull microsoft/mssql-server-linux
    
  4. สร้างไดเรกทอรีบนโฮสต์ที่จะเก็บข้อมูลจากคอนเทนเนอร์และเก็บค่าไว้ในตัวแปรสภาพแวดล้อมเพื่อความสะดวก:

    export DIR=/var/lib/mssql
    sudo mkdir $DIR
    
  5. เริ่มคอนเทนเนอร์:

    docker run \
        -d \
        --name mssql \
        -e 'ACCEPT_EULA=Y' \
        -e 'SA_PASSWORD=<PASSWORD>' \
        -p 1433:1433 \
        -v $DIR:/var/opt/mssql \
        microsoft/mssql-server-linux
    

    แทนที่<PASSWORD>ด้วยค่าที่ไม่ซ้ำที่จะใช้สำหรับการตรวจสอบในภายหลัง

  6. ตรวจสอบว่าคอนเทนเนอร์เริ่มต้นโดยไม่มีข้อผิดพลาด:

    docker ps -af name=mssql
    

    หากSTATUSคอลัมน์แสดง "Up ... " ใต้STATUSคอลัมน์แสดงว่าทุกอย่างทำงานอย่างถูกต้อง อย่างไรก็ตามหากมีข้อผิดพลาดปรากฏขึ้น:

    CONTAINER ID ... STATUS ...
    ba79fa12fbf1 ... Exited (0) 3 seconds ago ...
    

    ... จากนั้นคุณสามารถใช้docker logs mssqlเพื่อรับข้อมูลเพิ่มเติม

ในการเชื่อมต่อกับคอนเทนเนอร์จากแอปพลิเคชันให้ระบุพอร์ต 1433

โดยค่าเริ่มต้นภาชนะที่จะเริ่มต้นเมื่อคุณrunมัน คุณสามารถหยุดภาชนะด้วย:

docker stop mssql

ในการลบคอนเทนเนอร์ให้หยุดมันก่อนแล้วจึงเรียกใช้:

docker rm mssql

ทดสอบภายใต้ 18.04 ขอบคุณมันใช้งานได้และเร็วมาก
Joe Eifert

ชื่อผู้ใช้: sa รหัสผ่านควรมีอย่างน้อย 8 ตัวอักษรและตัวเลขและตัวอักษรบนและล่าง มิฉะนั้นคุณจะไม่สามารถเชื่อมต่อได้ ข้อมูลเพิ่มเติมได้ที่นี่: hub.docker.com/r/microsoft/mssql-server-linux
Joe Eifert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.