Kann ich SQL Server unter Ubuntu ausführen?

10

Mein Unternehmen entwickelt Software mit zwei Seiten: Client und Server. Ich habe Microsoft SQL Server unter Windows installiert und führe die Clientseite unter Ubuntu mit einigen Konfigurationen aus.

Aber ich frage mich: Gibt es eine Möglichkeit, Ubuntu stattdessen als Server auszuführen und SQL Server darauf zu installieren?

Narr
quelle

Antworten:

9

Sie können sicherlich den Ansatz ausprobieren, den ich unten skizzieren werde, aber ich weiß nicht, ob jemand ihn erfolgreich ausprobiert hat.

  1. Installieren Sie die Virtualisierungssoftware auf Ihrem Ubuntu-Computer (VMWare, Xen, VirtualBox).
  2. Installieren Sie Microsoft Windows Server in der virtuellen Maschine.
  3. Installieren Sie MS SQL Server auf dem neu installierten Windows Server.

Ich weiß nicht, ob ein anderer Weg funktionieren würde, aber die Leute können mir den MS SQL Server korrigieren, von dem ich mich erinnern kann, dass er tatsächlich auf der Lizenzierung für Microsoft Windows Server beruht. Darüber hinaus ist SQLServer ein ziemlich schlechtes Ressourcenproblem, sodass Unternehmen normalerweise versuchen, es von der Ausführung mit anderen Anwendungen auf ihrem eigenen Cluster oder Server zu trennen.

Eine Sache, die ich in Frage stellen würde, ist, warum nicht Sybase als Backend ausprobieren? Die Konnektivität von Linux zu SQLServer und Sybase kann durchlaufen werden FreeTDS, was mit Ihrer Client-Software identisch wäre.

Karlson
quelle
1
Nun, diese Antwort auf meine Frage, danke. Ich verwalte die Datenbank hier nicht. Wir haben eine ganze Reihe von Programmierern. Ich arbeite auf der Clientseite und wir installieren sowohl Server als auch Client. Ich virtuiere derzeit ein Ubuntu auf meinem Windows-Computer, um eine Reihe von Tests durchzuführen, um festzustellen, ob Ubuntu funktionieren würde. Mit Client ja. Auf dem Server ... nicht so gut, da SQL unter Linux niemals funktionieren würde. Vielen Dank für Ihre Antwort
Jester
1
@Karlson: Früher wahr, aber jetzt veraltet, Ende November 2016.
WitchCraft
Diese URL könnte damals wie ein Märchen ausgesehen haben docs.microsoft.com/en-us/sql/linux/…
Asim
5

WARNUNG: EMBRACE - EXTEND - DROP   ?

Ja, Ende November 2016 und gemäß docs.microsoft.com können Sie die öffentliche Vorschau von SQL-Server vNext CTP1 unter Ubuntu 16.04 installieren (funktioniert unter 14.04 nicht, da das OpenSSL-Paket veraltet ist und nicht funktioniert am 19.04 nicht, weil das OpenSSL-Paket zu neu ist):

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

oder neuer

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

Es zu entfernen

sudo apt-get remove --purge mssql-server

So entfernen Sie die generierten Datenbanken

sudo rm -rf /var/opt/mssql/

Wenn Sie überprüfen möchten, ob es funktioniert oder nicht, vergessen Sie nicht, die Firewall auszuschalten

iptables -F
iptables -P INPUT ACCEPT  

Sie können SQL-Server starten mit:

systemctl start mssql-server

Sie können SQL-Server stoppen mit:

systemctl stop mssql-server

So sehen Sie den Status:

systemctl status mssql-server

So starten Sie den SQL Server beim Booten:

systemctl enable mssql-server

So deaktivieren Sie den SQL-Server-Start beim Booten:

systemctl disable mssql-server

Und wenn Sie auch die Kommandozeilen-Tools möchten

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

Um es zu testen

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

Und um Port 1433 dauerhaft zu öffnen (SQL-Server Standard-Port)

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

oder wenn Sie ufw verwenden, können Sie dasselbe tun, indem Sie weniger mit tippen

ufw allow 1433/tcp

Siehe auch Firewall-Persistenz und dies

Für Red Hat (Firewall):

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

Wenn Sie nicht mit Befehlszeilentools arbeiten möchten, können Sie von einem Windows-Laptop aus eine Verbindung mit SSMS herstellen.

SSMS


Wenn Sie SQL-Server nicht in Ihrer Distribution verwenden können (openssl zu alt / openssl zu neu / Distribution nicht unterstützt), können Sie immer das Docker-Image verwenden:

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

Das installiert Docker, zieht das neueste Docker-Linux-Image von SQL-Server-2017 aus dem Internet und ordnet Port 1433 im Container Port 2017 im Host zu und setzt die Lizenz auf "Developer", das sa-Passwort auf TOP_SECRET und Außerdem wird / var / opt / mssql auf dem Container / var / opt / mssql auf dem Host zugeordnet. Möglicherweise müssen Sie diesen Ordner mit erstellen mkdir -p /var/opt/mssql.

Von dort aus können Sie den Container mit starten und den Container mit docker start mssql_2017stoppen docker stop mssql_2017.

Um grafisch mit SQL Server unter Linux zu arbeiten, können Sie AzureDataStudio verwenden , das Deb-Paket von der Github-Seite herunterladen und mit installierensudo dpkg -i azuredatastudio-linux-1.12.2.deb

Hexerei
quelle
Siehe auch askubuntu.com/questions/850957/…
WitchCraft
sqlcmdMöglicherweise muss ein Symlink erstellt werden, um nach der Installation von mssql-tools askubuntu.com/a/870928/8151
Niroshan