Freigeben über


Schnellstart: Installieren von SQL Server und Erstellen einer Datenbank unter Windows-Subsystem für Linux (WSL 2)

Gilt für:SQL Server – Linux

Das Windows-Subsystem für Linux (WSL) ist ein Feature in Windows, mit dem Sie eine Linux-Umgebung direkt auf Ihrem Windows-Computer ausführen können, ohne dass ein virtueller Computer oder ein dualer Start erforderlich ist. WSL bietet entwicklern, die windows und Linux gleichzeitig verwenden möchten, eine nahtlose und produktive Erfahrung. Weitere Informationen finden Sie unter Was ist das Windows-Subsystem für Linux?

SQL Server auf WSL ist nur für die Entwicklung vorgesehen.

SQL Server auf WSL 2 ist nur für Entwicklungszwecke vorgesehen und wird für Produktionsworkloads nicht unterstützt. Es wird empfohlen, SQL Server in WSL-Umgebungen auf einer der unterstützten Plattformen wie dokumentiert für die Version von SQL Server auszuführen, die Sie ausführen möchten.

Für alle supportbezogenen Probleme können Sie Support von Microsoft erhalten.

Erste Schritte mit SQL Server unter WSL 2

Es gibt zwei Möglichkeiten, mit SQL Server unter WSL 2 zu beginnen:

  • Installieren Sie SQL Server als systemd Dienst, der mithilfe von systemctl Befehlen verwaltet werden kann. Stellen Sie sicher, dass Sie systemd auf WSL aktivieren. Weitere Informationen finden Sie unter "Aktivieren von System".

  • Bereitstellen von SQL Server-Containern in WSL. Für diese Option müssen Sie ein Linux-Containermodul in WSL installieren, z. B. Docker oder Podman, und dann SQL Server-Container bereitstellen.

Voraussetzungen

Installieren Sie WSL 2. Stellen Sie sicher, dass Sie Windows 10 Version 2004 oder eine höhere Version (Build 19041 und höher) oder Windows 11 ausführen. Um WSL zu installieren, öffnen Sie eine PowerShell- oder Windows-Eingabeaufforderung im Administratormodus, und führen Sie den folgenden Befehl aus:

wsl --install

Ausführliche Anweisungen finden Sie unter Installieren von Linux unter Windows mit WSL. Informationen zum Einrichten der WSL-Umgebung für die Entwicklung finden Sie unter Einrichten einer WSL-Entwicklungsumgebung.

Installieren von SQL Server in WSL

In diesem Abschnitt werden die Schritte zum Einrichten einer Linux-Verteilung in WSL und die Installation von SQL Server in dieser Linux-Verteilung beschrieben.

Auswählen der Linux-Verteilung

Mit dem folgenden Befehl können Sie alle gültigen Verteilungen auflisten, die in WSL installiert werden können:

wsl -l -o

Die Ausgabe sieht in etwa wie im folgenden Beispiel aus.

The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

Installieren Sie für diese Schnellstartanleitung Ubuntu 22.04, und installieren Sie dann SQL Server 2022 in dieser Verteilung.

Führen Sie zum Installieren von Ubuntu 22.04 den folgenden Befehl aus. Notieren Sie sich das UNIX-Benutzerkonto und das Kennwort. In diesem Beispiel verwenden Sie wsluser als den Benutzernamen.

wsl --install -d Ubuntu-22.04

Die Ausgabe sollte etwa folgendem Beispiel entsprechen. Am Ende sollte gezeigt werden, dass Sie bei der Ubuntu 22.04 Bash-Shell angemeldet sind.

Installing: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS has been installed.
Launching Ubuntu 22.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: wsluser
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Tue Dec  3 00:32:14 IST 2024

  System load:  0.33                Processes:             32
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 2%                  IPv4 address for eth0: 10.18.123.249
  Swap usage:   0%

This message is shown once a day. To disable it please create the
/home/wsluser/.hushlogin file.

Installieren von SQL Server

Sobald Sie bei der Ubuntu 22.04 Bash-Shell angemeldet sind, können Sie die in der Schnellstartanleitung beschriebenen Schritte ausführen: Installieren von SQL Server und Erstellen einer Datenbank auf Ubuntu zum Installieren von SQL Server 2022.

Sie sollten auch die SQL Server-Befehlszeilentools installieren .

IP-Adresse abrufen

Um die IP-Adresse zu identifizieren, mit der eine Verbindung mit SQL Server Management Studio (SSMS) hergestellt werden soll, führen Sie den ifconfig Folgenden Befehl aus:

ifconfig

Die Ausgabe sollte etwa folgendem Beispiel entsprechen.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.19.50.241  netmask 255.255.240.0  broadcast 10.19.63.255
        inet6 fe80::215:5dff:fe76:c05d  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:76:c0:5d  txqueuelen 1000  (Ethernet)
        RX packets 2146  bytes 1452448 (1.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1905  bytes 345288 (345.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2039  bytes 4144340 (4.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2039  bytes 4144340 (4.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Bereitstellen von SQL Server-Containern in WSL

Um Container in WSL bereitzustellen, müssen Sie zuerst ein Linux-Containermodul wie Docker installieren. Weitere Informationen finden Sie unter "Erste Schritte mit Docker-Remotecontainern" auf WSL. Nachdem Sie das Docker-Modul installiert haben, stellen Sie das SQL Server-Containerimage wie folgt bereit.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-d mcr.microsoft.com/mssql/server:2022-latest

Hinweis

Ihr Kennwort sollte der standardmäßigen Kennwortrichtlinie von SQL Server folgen. Ein Standardkennwort enthält mindestens acht Zeichen, die aus drei der folgenden vier Kategorien stammen müssen: Großbuchstaben, Kleinbuchstaben, Grundzahlen (0–9) und Symbole. Kennwörter können bis zu 128 Zeichen lang sein. Verwenden Sie möglichst lange und komplexe Kennwörter.

Hinzufügen von persistentem Speicher mit WSL für SQL Server-Container

Sie können Datenvolumes erstellen, wie im Bereitstellen eines Hostverzeichnisses als Datenvolume beschrieben.

Führen Sie beispielsweise den folgenden Befehl aus, um ein Volume einzurichten, das sich an sql_volume befindet und bei /var/opt/mssql/ liegt.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-v sql_volume:/var/opt/mssql/ \
-d mcr.microsoft.com/mssql/server:2022-latest

Auch wenn Sie den wsl --terminate Befehl ausführen, gehen die Daten nicht verloren. Wenn Sie WSL erneut starten und den docker run Befehl ausführen, um mit dem sql_volume Volumen die Bereitstellung durchzuführen, sind alle Daten weiterhin intakt.

Wenn Sie das permanente Volume löschen möchten, stellen Sie sicher, dass der Container mit dem Volume beendet und entfernt wird, und führen Sie den folgenden Befehl aus.

docker volume rm sql_volume

Bemerkungen

Sie sollten in der Lage sein, die meisten der für SQL Server unter Linux unterstützten Features für Entwicklungszwecke zu konfigurieren, mit Ausnahme der Geschäftskontinuitätsfeatures, die von Clusteringstapeln abhängig sind. Diese Features, z. B. Pacemaker oder HPE Serviceguard, werden auf WSL nicht unterstützt.

Eine vollständige Liste der nicht unterstützten Features für SQL Server unter Linux finden Sie unter Editionen und unterstützte Features von SQL Server 2022 unter Linux.

Lokal verbinden

Die folgenden Schritte verwenden sqlcmd, um sich lokal mit Ihrer neuen SQL Server-Instanz zu verbinden.

Vorsicht

Ihr Kennwort sollte der standardmäßigen Kennwortrichtlinie von SQL Server folgen. Ein Standardkennwort enthält mindestens acht Zeichen, die aus drei der folgenden vier Kategorien stammen müssen: Großbuchstaben, Kleinbuchstaben, Grundzahlen (0–9) und Symbole. Kennwörter können bis zu 128 Zeichen lang sein. Verwenden Sie möglichst lange und komplexe Kennwörter.

  1. Führen Sie sqlcmd mit Parametern für Ihren SQL Servernamen (-S), den Benutzernamen (-U) und das Kennwort (-P) aus. In diesem Tutorial stellen Sie eine lokale Verbindung her. Der Servername lautet daher localhost. Der Benutzername ist sa, und das Kennwort ist jenes, welches Sie beim Setup für das sa-Konto angegeben haben.

    sqlcmd -S localhost -U sa -P '<password>'
    

    Hinweis

    Neuere Versionen von sqlcmd sind standardmäßig sicher. Weitere Informationen zur Verbindungsverschlüsselung finden Sie unter sqlcmd-Hilfsprogramm für Windows und Herstellen einer Verbindung mit sqlcmd für Linux und macOS. Wenn die Verbindung nicht erfolgreich ist, können Sie -No die Option hinzufügen, um anzugeben, dass die Verschlüsselung optional und nicht obligatorisch ist.

    Sie können das Kennwort in der Befehlszeile auslassen, damit Sie aufgefordert werden, dieses einzugeben.

    Wenn Sie später eine Remoteverbindung herstellen möchten, geben Sie den Computernamen oder die IP-Adresse für den Parameter -S ein, und stellen Sie sicher, dass der Port 1433 in Ihrer Firewall geöffnet ist.

  2. Wenn dies erfolgreich war, sollten Sie zu einer sqlcmd-Eingabeaufforderung gelangen: 1>.

  3. Wenn Sie einen Verbindungsfehler erhalten, versuchen Sie zunächst das Problem aus der Fehlermeldung zu ermitteln. Überprüfen Sie anschließend die Empfehlungen zur Verbindungsproblembehandlung.

Erstellen und Abfragen von Daten

Die folgenden Abschnitte führen Sie durch die Verwendung von sqlcmd, um eine neue Datenbank zu erstellen, Daten hinzuzufügen und eine einfache Abfrage auszuführen.

Weitere Informationen über das Schreiben von Transact-SQL-Anweisungen und -Abfragen finden Sie im Tutorial: Schreiben von Transact-SQL-Anweisungen.

Erstellen einer neuen Datenbank

Mit den folgenden Schritten wird eine neue Datenbank mit dem Namen TestDB erstellt.

  1. Fügen Sie aus der sqlcmd-Eingabeaufforderung den folgenden Transact-SQL-Befehl zur Erstellung einer Testdatenbank ein:

    CREATE DATABASE TestDB;
    
  2. Schreiben Sie in der nächsten Zeile eine Abfrage, um den Namen all Ihrer Datenbanken auf Ihrem Server zurückzugeben:

    SELECT Name
    FROM sys.databases;
    
  3. Die vorherigen beiden Befehle werden nicht sofort ausgeführt. Sie müssen GO in einer neuen Zeile eingeben, um die zuvor eingegebenen Befehle auszuführen:

    GO
    

Einfügen von Daten

Erstellen Sie als Nächstes eine neue Tabelle, dbo.Inventory, und fügen Sie zwei neue Zeilen ein.

  1. Wechseln Sie den Kontext aus der sqlcmd-Eingabeaufforderung zur neuen TestDB-Datenbank:

    USE TestDB;
    
  2. Erstellen Sie eine neue Tabelle mit dem Namen dbo.Inventory:

    CREATE TABLE dbo.Inventory
    (
        id INT,
        name NVARCHAR (50),
        quantity INT,
        PRIMARY KEY (id)
    );
    
  3. Fügen Sie Daten in die neue Tabelle ein:

    INSERT INTO dbo.Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO dbo.Inventory
    VALUES (2, 'orange', 154);
    
  4. Geben Sie GO ein, um die zuvor eingegebenen Befehle auszuführen:

    GO
    

Auswählen von Daten

Führen Sie nun eine Abfrage zum Zurückgeben von Daten aus der dbo.Inventory-Tabelle aus.

  1. Geben Sie aus der sqlcmd-Eingabeaufforderung eine Abfrage ein, die Reihen aus der dbo.Inventory-Tabelle zurückgibt, bei denen die Menge größer als 152 ist:

    SELECT *
    FROM dbo.Inventory
    WHERE quantity > 152;
    
  2. Führen Sie den folgenden Befehl aus:

    GO
    

Beenden der sqlcmd-Eingabeaufforderung

Zum Beenden der sqlcmd-Sitzung, geben Sie QUIT ein:

QUIT

Leistungsoptimierung: Bewährte Praktiken

Nachdem Sie SQL Server für Linux installiert haben, sehen Sie sich die bewährten Methoden für das Konfigurieren von Linux und SQL Server an, um die Leistung für Produktionsszenarien zu verbessern. Weitere Informationen finden Sie unter Bewährte Methoden für die Leistung und Konfigurationsrichtlinien für SQL Server für Linux.

Plattformübergreifende Datentools

Zusätzlich zu sqlcmd können Sie die folgenden plattformübergreifenden Tools verwenden, um SQL Server zu verwalten:

Werkzeug BESCHREIBUNG
Azure Data Studio Eine plattformübergreifende Anwendung mit grafischer Benutzeroberfläche zur Datenbankverwaltung.
Visual Studio Code Ein plattformübergreifender Code-Editor mit grafischer Benutzeroberfläche, in dem Transact-SQL-Anweisungen mit der mssql-Erweiterung ausgeführt werden.
PowerShell Core Ein plattformübergreifendes Automatisierungs- und Konfigurationstool, das auf-Cmdlets basiert.
mssql-cli Eine plattformübergreifende Befehlszeilenschnittstelle zum Ausführen von Transact-SQL-Befehlen.

Herstellen einer Verbindung aus Windows

SQL Server-Tools unter Windows stellen eine Verbindung mit SQL Server-Instanzen unter Linux auf die gleiche Weise her, wie sie sich mit einer beliebigen Remoteinstanz von SQL Server verbinden würden.

Wenn Sie einen Windows-Computer haben, der mit Ihrem Linux-Computer eine Verbindung herstellen kann, versuchen Sie die gleichen Schritte in diesem Thema aus einer Windows-Befehlszeile, die sqlcmd ausführt. Stellen Sie sicher, dass Sie den Namen des Linux-Zielcomputers oder die IP-Adresse anstelle von `localhost` verwenden, und vergewissern Sie sich, dass der TCP-Port 1433 auf dem SQL Server-Computer geöffnet ist. Unter Empfehlungen zur Verbindungsproblembehandlung finden Sie weitere Informationen, wenn beim Herstellen einer Verbindung von Windows Probleme auftreten.

Andere Tools, die unter Windows ausgeführt werden, die sich aber mit SQL Server unter Linux verbinden, finden Sie unter:

Weitere Bereitstellungsszenarien

Weitere Installationsszenarios finden Sie in den folgenden Ressourcen:

  • Upgrade: Erfahren Sie, wie Sie eine vorhandene Installation von SQL unter Linux aktualisieren können.
  • Uninstall: Deinstallieren von SQL Server unter Linux
  • Unbeaufsichtigte Installation: Erfahren Sie, wie Sie die Installation ohne Aufforderungen skripten können.
  • Offlineinstallation: Erfahren Sie, wie Sie die Pakete für die Offlineinstallation manuell herunterladen können.

Antworten auf häufig gestellte Fragen finden Sie unter Häufig gestellte Fragen zu SQL Server für Linux.

Zur SQL-Dokumentation beitragen

Wussten Sie schon, dass Sie SQL-Inhalte selbst bearbeiten könnten? Wenn Sie dies tun, helfen Sie nicht nur, unsere Dokumentation zu verbessern, sondern werden Sie auch als Mitwirkender der Seite erwähnt.

Weitere Informationen finden Sie unter Bearbeiten der Microsoft Learn-Dokumentation.