Microsoft SQL Server (MS-SQL auf Linux installieren)
Hallo $LISTE,
der eine oder andere mag mich dafür steinigen wollen, dass ich so etwas
perverses überhaupt ausprobiere, aber da es sicher auch Leute gibt, die
das selbst ausprobieren wollen, hier eine kurze Zusammenfassung:
Offiziell unterstützt wird die Installation laut Microsoft nur auf:
- Red Hat Enterprise Linux 7.2
- Ubuntu Linux 16.04
- bald auch SUSE Linux Enterprise Server v12 SP2 ("coming soon")
Tatsächlich lassen sich die Ubuntu-Pakete aber auch unter Debian so
installieren, dass man am Schluss ein funktionsfähiges System hat.
Von mir im Test verwendete Debian-Version: stretch/sid 64-Bit
*In jedem Fall notwendig*, egal ob man MS-SQL-Server, nur die Tools
(MS-SQL-Commandline-Client), oder beides installieren will:
apt-get install -y apt-transport-https curl
Auf der Maschine, auf der man den MS-SQL-Server installieren will:
==================================================================
1) RAM-Minimum (SWAP zählt nicht): 3,25GB
(sonst bricht die Paketinstallation mit entsprechender
Fehlermeldung ab)
2) Es muss zwingend systemd als Init-System verwendet werden
(für andere Init-Systeme werden keine Start-/Stop-Skripte
mitgeliefert:
service mssql-server status
oder
/etc/init.d/mssql-server status
versagt also, nur
systemctl status mssql-server
liefert ein Ergebnis)
3) Installation gemäß
<https://docs.microsoft.com/de-de/sql/linux/sql-server-linux-setup-ubuntu>:
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
# kein Schreibfehler, da fehlt absichtlich das 2. "e" in "servr"
# in diesem Schritt wird man auch nach dem Passwort für den
# "root"-Account der Datenbank - bei MS "SA" genannt - gefragt.
# Diesen sollte man sich gut merken/notieren, da er für den
# ersten Connect zur Datenbank (s.u.) benötigt wird.
systemctl status mssql-server
Ich habe mich dabei allerdings als root eingeloggt und daher auf die
sudo-Aufrufe verzichtet.
Auf der Maschine, auf der man die Tools (den MS-SQL-Commandline-Client)
installieren will:
=======================================================================
1) Die Locale "en_UT.UTF-8" muss existieren (sie muss aber nicht per
LOCALE= oder LC_ALL= o.ä. gesetzt sein, die reine Existenz ist
ausreichend)
Bedeutet: Wenn
locale-gen | grep 'en_US\.UTF-8'
nichts auswirft, ein Mal
dpkg-reconfigure locales
ausführen und en_US.UTF-8 (zusätzlich) selektieren
2) Installation gemäß
<https://docs.microsoft.com/de-de/sql/linux/sql-server-linux-setup-tools#ubuntu>:
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 # ich habe noch ein "-y" ergänzt
Ich habe mich auch hier als root eingeloggt und daher auf die
sudo-Aufrufe verzichtet.
3) Danach kann man den Walk-Through aus
<https://docs.microsoft.com/de-de/sql/linux/sql-server-linux-connect-and-query-sqlcmd#connect-to-sql-server-on-linux>
erfolgreich nachspielen.
Ich habe die LAN-IP des Systems zum Connect verwendet, gehe aber
davon aus, dass es auch mit der Localhost-IP funktioniert.
Weiterhin benötigt man dazu den Benutzernamen - direkt nach der
Installation gibt es nur den "root"-Account namens "SA" - und
das passende Passwort, was man vorher (s.o.) selbst vergeben hat.
Da es sich noch um eine Vorabversion handelt, sollte man sie nicht
für den Produktivbetrieb nutzen. Aber auch schon in der Testumgebung
sollte man sich "sauberes" Arbeiten angewöhnen, d.h. der nächste
Schritt sollte sein, weitere Benutzeraccounts in der Datenbank
anzulegen, die nur über eingeschränkte Rechte verfügen, alle
Passworte - speziell aber das für "SA" - hinreichend komplex zu
wählen, und anschließend nur noch mit den nicht-SA-Accounts
Verbindungen zur Datenbank aufzubauen.
Gruß
Stefan
Reply to: