[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: