Czy mogę uruchomić SQL Server na Ubuntu?

10

Moja firma rozwija oprogramowanie z dwóch stron: klienta i serwera. Zainstalowałem Microsoft SQL Server w systemie Windows i działam po stronie klienta na Ubuntu z pewną konfiguracją.

Ale zastanawiam się: czy istnieje sposób, aby uruchomić Ubuntu jako serwer zamiast tego i zainstalować na nim SQL Server?

Błazen
źródło

Odpowiedzi:

9

Z pewnością możesz wypróbować podejście, które przedstawię poniżej, ale nie wiem, czy ktoś wypróbował je z powodzeniem.

  1. Zainstaluj oprogramowanie do wirtualizacji na swoim komputerze Ubuntu (VMWare, Xen, VirtualBox).
  2. Zainstaluj Microsoft Windows Server na maszynie wirtualnej.
  3. Zainstaluj MS SQL Server na nowo zainstalowanym systemie Windows Server.

Nie wiem, czy działałby jakikolwiek inny sposób, ale ludzie mogą poprawić MS SQL Server z tego, co pamiętam, w rzeczywistości opiera się na Licencjonowaniu dla Microsoft Windows Server. Oprócz tego SQLServer jest dość kiepskim wiepiem zasobów, więc zwykle organizacje próbują oddzielić go od działania z innymi aplikacjami na swoim własnym klastrze lub serwerze.

Chciałbym zapytać o jedną rzecz: dlaczego nie spróbować Sybase jako backendu? Łączność między Linuksem a SQLServer i Sybase może się odbywać FreeTDS, co wyglądałoby identycznie jak oprogramowanie klienta.

Karlson
źródło
1
Cóż, odpowiedz na moje pytanie, dzięki. Nie zarządzam bazą danych tutaj, mamy całą grupę programistów, pracuję po stronie klienta i instalujemy zarówno serwer ORAZ klienta. Obecnie wirtualizuję ubuntu na moim komputerze z systemem Windows, aby uruchomić kilka testów, aby sprawdzić, czy ubuntu zadziała. Z klientem tak. Na serwerze .... nie tak dobrze, ponieważ SQL nigdy nie działałby w systemie Linux. Dziękuję za odpowiedź
Jester
1
@Karlson: Kiedyś to prawda, ale teraz jest przestarzała, pod koniec listopada 2016 r.
WitchCraft,
Ten adres URL mógł wtedy wyglądać jak bajka docs.microsoft.com/en-us/sql/linux/…
Asim
5

OSTRZEŻENIE: UBRANIE - PRZEDŁUŻENIE - KROPKA   ?

Tak, zgodnie z końcem listopada 2016 r. I dokumentem docs.microsoft.com , możesz zainstalować publiczny podgląd serwera sql vNext CTP1 na Ubuntu 16.04 (nie działa 14.04, ponieważ pakiet OpenSSL jest nieaktualny i nie działa działa 19.04, ponieważ pakiet OpenSSL jest zbyt nowy):

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

lub nowsze

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

Aby go usunąć

sudo apt-get remove --purge mssql-server

Aby usunąć wygenerowane bazy danych

sudo rm -rf /var/opt/mssql/

Jeśli chcesz sprawdzić, czy to działa, czy nie, nie zapomnij wyłączyć zapory

iptables -F
iptables -P INPUT ACCEPT  

Możesz uruchomić SQL-Server za pomocą:

systemctl start mssql-server

Możesz zatrzymać SQL-Server za pomocą:

systemctl stop mssql-server

Aby zobaczyć jego status:

systemctl status mssql-server

Aby uruchomić serwer SQL podczas uruchamiania:

systemctl enable mssql-server

Aby wyłączyć uruchamianie serwera SQL podczas uruchamiania:

systemctl disable mssql-server

A jeśli chcesz także narzędzia wiersza polecenia

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

Aby to przetestować

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

I na stałe otworzyć port 1433 (domyślny port serwera SQL)

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

lub jeśli używasz ufw, możesz zrobić to samo, pisząc mniej

ufw allow 1433/tcp

Zobacz także trwałość zapory i to

W przypadku Red Hat (firewalld):

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

Jeśli nie chcesz pracować z narzędziami wiersza polecenia, możesz połączyć się z SSMS z laptopa z systemem Windows.

SSMS


Jeśli nie możesz użyć serwera SQL w swojej dystrybucji (openssl za stary / openssl zbyt nowy / dystrybucja nie jest obsługiwana), zawsze możesz użyć obrazu dokera:

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

instaluje okno dokowane, pobiera najnowszy obraz dokera-linux-SQL-Server-2017 z Internetu i mapuje port 1433 w kontenerze na port 2017 w hoście i ustawia licencję na „Deweloper”, a sa-Hasło na TOP_SECRET i mapuje również / var / opt / mssql na kontenerze na / var / opt / mssql na hoście. Może być konieczne utworzenie tego folderu za pomocą mkdir -p /var/opt/mssql.

Od tego momentu możesz uruchomić pojemnik za pomocą docker start mssql_2017i zatrzymać pojemnik za pomocą docker stop mssql_2017.

Aby graficznie pracować z serwerem SQL w systemie Linux, możesz użyć AzureDataStudio , pobrać pakiet deb ze strony github i zainstalować go za pomocąsudo dpkg -i azuredatastudio-linux-1.12.2.deb

Czary
źródło
Zobacz także askubuntu.com/questions/850957/…
WitchCraft
Może być konieczne utworzenie dowiązania symbolicznego, aby zacząć sqlcmddziałać po zainstalowaniu narzędzia mssql askubuntu.com/a/870928/8151
Niroshan