Meine Firma entwickelt Software mit zwei Seiten: Client und Server. Ich habe Microsoft SQL Server unter Windows installiert und führe die Clientseite mit einigen Konfigurationen unter Ubuntu aus.
Aber ich frage mich: Gibt es eine Möglichkeit, stattdessen Ubuntu als Server auszuführen und SQL Server darauf zu installieren?
Antwort1
Sie können sicherlich den Ansatz ausprobieren, den ich im Folgenden beschreibe, aber ich weiß nicht, ob jemand ihn erfolgreich ausprobiert hat.
- Installieren Sie Virtualisierungssoftware auf Ihrem Ubuntu-Computer (VMWare, Xen, VirtualBox).
- Installieren Sie Microsoft Windows Server in der virtuellen Maschine.
- Installieren Sie MS SQL Server auf dem neu installierten Windows Server.
Ich weiß nicht, ob es anders funktionieren würde, aber die Leute können mich korrigieren: Soweit ich mich erinnere, basiert MS SQL Server tatsächlich auf der Lizenzierung für Microsoft Windows Server. Darüber hinaus ist SQL Server ein ziemlicher Ressourcenfresser, daher versuchen Organisationen normalerweise, ihn von der Ausführung mit anderen Anwendungen auf seinem eigenen Cluster oder Server zu trennen.
Eine Sache, die ich in Frage stelle, ist, warum Sie nicht Sybase als Backend ausprobieren? Die Verbindung von Linux zu SQLServer und Sybase kann über erfolgen FreeTDS
, was mit Ihrer Client-Software identisch aussehen würde.
Antwort2
WARNUNG:UMARMEN - AUSDEHNEN - FALLEN LASSEN ?
Ja, per Ende November 2016 und perdocs.microsoft.comkönnen Sie die öffentliche Vorschau von SQL-Server vNext CTP1 auf Ubuntu 16.04 installieren (funktioniert nicht auf 14.04, da das OpenSSL-Paket veraltet ist, und funktioniert nicht auf 19.04, da 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 wie folgt stoppen:
systemctl stop mssql-server
So zeigen Sie den Status an:
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 dieKommandozeilen-Tools
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 (SQL-Server-Standardport) dauerhaft zu öffnen
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 less eingeben mit
ufw allow 1433/tcp
Siehe auchFirewall-PersistenzUndDas
Für Red Hat (Firewalld):
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.
Wenn Sie SQL Server auf Ihrer Distribution nicht verwenden können (OpenSSL zu alt / OpenSSL zu neu / Distribution wird 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 SQL-Server-2017 Docker-Linux-Image aus dem Internet und ordnet Port 1433 im Container Port 2017 im Host zu, setzt die Lizenz auf „Developer“, das sa-Passwort auf TOP_SECRET und ordnet /var/opt/mssql im Container /var/opt/mssql auf dem Host zu. Möglicherweise müssen Sie diesen Ordner mit erstellen mkdir -p /var/opt/mssql
.
Von dort aus können Sie den Container mit starten docker start mssql_2017
und mit stoppen docker stop mssql_2017
.
Um grafisch mit SQL Server unter Linux zu arbeiten, können Sie verwendenAzureDataStudio, laden Sie dieDeb-Paketvon der GitHub-Seite und installieren Sie es mitsudo dpkg -i azuredatastudio-linux-1.12.2.deb