Bisakah saya menjalankan SQL Server di Ubuntu?

10

Perusahaan saya mengembangkan perangkat lunak dengan dua sisi: klien dan server. Saya telah menginstal Microsoft SQL Server di Windows dan menjalankan sisi klien di Ubuntu dengan beberapa konfigurasi.

Tapi saya bertanya-tanya: apakah ada cara untuk menjalankan Ubuntu sebagai server dan menginstal SQL Server di atasnya?

Pelawak
sumber

Jawaban:

9

Anda tentu dapat mencoba pendekatan yang akan saya uraikan di bawah ini tetapi saya tidak tahu apakah ada yang berhasil mencobanya.

  1. Instal perangkat lunak virtualisasi di mesin Ubuntu Anda (VMWare, Xen, VirtualBox).
  2. Instal Microsoft Windows Server di mesin virtual.
  3. Instal MS SQL Server pada Windows Server yang baru diinstal.

Saya tidak tahu apakah ada cara lain yang akan berhasil, tetapi orang-orang dapat mengoreksi saya MS SQL Server dari apa yang saya ingat sebenarnya bergantung pada Lisensi untuk Microsoft Windows Server. Di atas SQLServer ini adalah sumber daya babi yang sangat buruk sehingga biasanya organisasi mencoba memisahkannya dari berjalan dengan aplikasi lain pada cluster atau server itu sendiri.

Satu hal yang saya akan tanyakan adalah mengapa tidak mencoba Sybase sebagai backend? Konektivitas dari Linux ke SQLServer dan Sybase dapat dilalui FreeTDS, yang akan terlihat identik dengan perangkat lunak klien Anda.

Karlson
sumber
1
Nah ini jawab pertanyaan saya, terima kasih. Saya tidak mengelola database di sini kami memiliki sejumlah besar programmer, saya sedang bekerja di sisi klien dan kami menginstal kedua server DAN klien. Saat ini saya sedang melakukan virtuallizing ubuntu di mesin windows saya untuk menjalankan banyak tes untuk melihat apakah ubuntu akan berfungsi. Dengan klien ya. Di server .... tidak begitu baik, karena SQL tidak akan pernah bekerja di Linux. Terima kasih atas jawaban Anda
Jester
1
@Karlson: Dulu benar, tetapi sekarang ketinggalan zaman, per akhir November 2016.
WitchCraft
URL ini mungkin tampak seperti dongeng saat itu docs.microsoft.com/en-us/sql/linux/…
Asim
5

PERINGATAN: EMBRACE - EXTEND - DROP   ?

Ya, pada akhir November 2016, dan sesuai docs.microsoft.com , Anda dapat menginstal pratinjau publik dari sql-server vNext CTP1 di Ubuntu 16.04 (tidak berfungsi pada 14,04 karena paket OpenSSL sudah usang, dan tidak dapat bekerja pada 19,04 karena paket-OpenSSL terlalu baru):

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
sudo apt-get update
sudo apt-get install -y mssql-server
sudo /opt/mssql/bin/sqlservr-setup

atau lebih baru

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

Untuk menghapusnya

sudo apt-get remove --purge mssql-server

Untuk menghapus database yang dihasilkan

sudo rm -rf /var/opt/mssql/

Jika Anda ingin memeriksa apakah itu berfungsi atau tidak, jangan lupa untuk mematikan firewall

iptables -F
iptables -P INPUT ACCEPT  

Anda dapat memulai SQL-Server dengan:

systemctl start mssql-server

Anda dapat menghentikan SQL-Server dengan:

systemctl stop mssql-server

Untuk melihat statusnya:

systemctl status mssql-server

Untuk memulai sql-server saat boot:

systemctl enable mssql-server

Untuk menonaktifkan SQL-Server-start saat boot:

systemctl disable mssql-server

Dan jika Anda juga menginginkan alat baris perintah

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update 
sudo apt-get install mssql-tools

Untuk mengujinya

sqlcmd -S localhost -U SA -P 'YourPasswordHere'
CREATE DATABASE contoso
exit

Dan untuk secara permanen membuka port 1433 (sql-server default-port)

iptables -A INPUT -p tcp --dport 1433 -j ACCEPT
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

atau jika Anda menggunakan ufw, Anda dapat melakukan hal yang sama dengan mengetik lebih sedikit

ufw allow 1433/tcp

Lihat juga firewall-persistensi dan ini

Untuk Red Hat (firewalld):

firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --reload

Jika Anda tidak ingin bekerja dengan alat baris perintah, Anda dapat terhubung dengan SSMS dari laptop windows.

SSMS


Jika Anda tidak dapat menggunakan sql-server pada distro Anda (openssl terlalu lama / openssl terlalu baru / distro tidak didukung), maka Anda selalu dapat menggunakan gambar buruh pelabuhan:

sudo apt-get install docker.io 
docker pull mcr.microsoft.com/mssql/server:2017-latest

docker run -d -p 2017:1433 --name mssql_2017 -e MSSQL_SA_PASSWORD =TOP_SECRET -e ACCEPT_EULA=Y  -e MSSQL_PID="Developer" -v /var/opt/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

yang memasang buruh pelabuhan, menarik citra server-SQL-Server-2017 terbaru dari internet, dan memetakan port 1433 dalam wadah ke port 2017 di host, dan menetapkan lisensi untuk "Pengembang", sa-Kata Sandi untuk TOP_SECRET dan itu juga memetakan / var / opt / mssql pada wadah ke / var / opt / mssql pada host. Anda mungkin harus membuat folder itu dengan mkdir -p /var/opt/mssql.

Dari sana, Anda dapat memulai wadah dengan docker start mssql_2017dan menghentikan wadah dengan docker stop mssql_2017.

Untuk bekerja secara grafis dengan sql-server di Linux, Anda dapat menggunakan AzureDataStudio , unduh paket-deb dari halaman github-nya, dan instal dengansudo dpkg -i azuredatastudio-linux-1.12.2.deb

Sihir
sumber
Lihat juga askubuntu.com/questions/850957/…
WitchCraft
Mungkin perlu membuat symlink untuk sqlcmdbekerja setelah menginstal mssql
Niroshan