Dela via


Snabbstart: Installera SQL Server och skapa en databas i Windows-undersystemet för Linux (WSL 2)

gäller för:SQL Server – Linux

Windows Undersystem för Linux (WSL) är en funktion i Windows som gör att du kan köra en Linux-miljö direkt på din Windows-dator, utan att behöva en virtuell dator eller dubbel start. WSL ger en sömlös och produktiv upplevelse för utvecklare som vill använda både Windows och Linux samtidigt. Mer information finns i Vad är Windows-undersystemet för Linux?

SQL Server på WSL är endast avsedd för utveckling

SQL Server på WSL 2 är endast avsett för utveckling och är inte stöds för produktionsarbetsbelastningar. Vi rekommenderar att du kör SQL Server i WSL-miljöer på någon av de plattformar som stöds som dokumenteras, för den version av SQL Server som du tänker köra.

För eventuella supportrelaterade problem kan du få support från Microsoft.

Kom igång med SQL Server på WSL 2

Det finns två sätt att komma igång med SQL Server på WSL 2:

  • Installera SQL Server som en systemd tjänst som kan hanteras med hjälp av systemctl kommandon. Kontrollera att du aktiverar systemd på WSL. Mer information finns i Hur du aktiverar systemd.

  • Distribuera SQL Server-containrar i WSL. För det här alternativet måste du installera en Linux-containermotor i WSL, till exempel Docker eller Podman, och sedan distribuera SQL Server-containrar.

Förutsättningar

Installera WSL 2. Kontrollera att du kör Windows 10 version 2004 eller en senare version (version 19041 och senare) eller Windows 11. Om du vill installera WSL öppnar du en PowerShell- eller Windows-kommandotolk i administratörsläge och kör följande kommando:

wsl --install

Detaljerade anvisningar finns i Så här installerar du Linux på Windows med WSL. Information om hur du konfigurerar WSL-miljön för utveckling finns i Konfigurera en WSL-utvecklingsmiljö.

Installera SQL Server i WSL

I det här avsnittet beskrivs stegen för att konfigurera en Linux-distribution i WSL och hur du installerar SQL Server i den Linux-distributionen.

Välj Linux-distribution

Du kan visa en lista över alla giltiga distributioner som kan installeras i WSL med hjälp av följande kommando:

wsl -l -o

Utdata ser ut ungefär som i följande exempel.

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

För den här snabbstarten installerar du Ubuntu 22.04 och installerar sedan SQL Server 2022 i den distributionen.

Kör följande kommando för att installera Ubuntu 22.04. Anteckna UNIX-användarkontot och lösenordet. I det här exemplet använder du wsluser som användarnamn.

wsl --install -d Ubuntu-22.04

Du bör se utdata som liknar följande exempel. I slutet bör det visa att du är inloggad i bash-gränssnittet Ubuntu 22.04.

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.

Installera SQL Server

När du är inloggad i bash-gränssnittet Ubuntu 22.04 kan du följa stegen som beskrivs i Snabbstart: Installera SQL Server och skapa en databas på Ubuntu för att installera SQL Server 2022.

Du bör installera kommandoradsverktygen för SQL Server också.

Hämta IP-adress

Om du vill identifiera IP-adressen för att ansluta till med SQL Server Management Studio (SSMS) kör du kommandot ifconfig på följande sätt:

ifconfig

Du bör se utdata som liknar följande exempel.

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

Distribuera SQL Server-containrar i WSL

Om du vill distribuera containrar i WSL måste du först installera en Linux-containermotor, till exempel Docker. Mer information finns i Komma igång med Docker-fjärrcontainrar på WSL. När du har installerat Docker-motorn distribuerar du SQL Server-containeravbildningen på följande sätt.

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

Not

Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.

Lägga till beständig lagring med WSL för SQL Server-containrar

Du kan skapa datavolymer enligt beskrivningen i Montera en värdkatalog som datavolym.

Kör till exempel följande kommando för att konfigurera en volym med namnet sql_volume som finns på /var/opt/mssql/.

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

Även om du kör kommandot wsl --terminate går inte data förlorade. När du startar WSL igen och kör kommandot docker run för att distribuera med hjälp av den sql_volume-volymen har den fortfarande alla data intakta.

Om du vill ta bort den bevarade volymen kontrollerar du att containern som använder volymen har stoppats och tagits bort och kör följande kommando.

docker volume rm sql_volume

Anmärkningar

Du bör kunna konfigurera de flesta funktioner som stöds för SQL Server i Linux i utvecklingssyfte, förutom funktioner för affärskontinuitet som är beroende av klustringsstackar. Dessa funktioner, till exempel Pacemaker eller HPE Serviceguard, stöds inte på WSL.

En fullständig lista över funktioner som inte stöds för SQL Server i Linux finns i Utgåvor och funktioner som stöds i SQL Server 2022 på Linux.

Ansluta lokalt

Följande steg använder sqlcmd för att ansluta lokalt till din nya SQL Server-instans.

Försiktighet

Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.

  1. Kör sqlcmd med parametrar för ditt SQL Server-namn (-S), användarnamnet (-U) och lösenordet (-P). I den här handledningen ansluter du lokalt, så servernamnet är localhost. Användarnamnet är sa och lösenordet är det du angav för sa-kontot under installationen.

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

    Observera

    Nyare versioner av sqlcmd är säkra som standard. Mer information om anslutningskryptering finns i sqlcmd-verktyg för Windows och Ansluta med sqlcmd- för Linux och macOS. Om anslutningen inte lyckas kan du lägga till alternativet -No i sqlcmd- för att ange att kryptering är valfritt, inte obligatoriskt.

    Du kan utelämna lösenordet på kommandoraden så att du blir uppmanad att ange det.

    Om du senare bestämmer dig för att fjärransluta anger du datornamnet eller IP-adressen för parametern -S och kontrollerar att port 1433 är öppen i brandväggen.

  2. Om det lyckas bör du komma till en sqlcmd kommandotolk: 1>.

  3. Om du får ett anslutningsfel försöker du först diagnostisera problemet från felmeddelandet. Granska sedan felsökningsrekommendationerna för anslutning.

Skapa och fråga efter data

Följande avsnitt beskriver hur du använder sqlcmd för att skapa en ny databas, lägga till data och köra en enkel fråga.

Mer information om hur du skriver Transact-SQL-instruktioner och frågor finns i Tutorial: Write Transact-SQL statements.

Skapa en ny databas

Följande steg skapar en ny databas med namnet TestDB.

  1. Från kommandotolken sqlcmd klistrar du in följande Transact-SQL kommando för att skapa en testdatabas:

    CREATE DATABASE TestDB;
    
  2. På nästa rad skriver du en fråga för att returnera namnet på alla databaser på servern:

    SELECT Name
    FROM sys.databases;
    
  3. De föregående två kommandona körs inte omedelbart. Du måste skriva GO på en ny rad för att köra föregående kommandon:

    GO
    

Infoga data

Skapa sedan en ny tabell dbo.Inventoryoch infoga två nya rader.

  1. Från kommandotolken sqlcmd växlar du kontexten till den nya TestDB databasen:

    USE TestDB;
    
  2. Skapa en ny tabell med namnet dbo.Inventory:

    CREATE TABLE dbo.Inventory
    (
        id INT,
        name NVARCHAR (50),
        quantity INT,
        PRIMARY KEY (id)
    );
    
  3. Infoga data i den nya tabellen:

    INSERT INTO dbo.Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO dbo.Inventory
    VALUES (2, 'orange', 154);
    
  4. Skriv GO för att köra föregående kommandon:

    GO
    

Välj data

Kör nu en fråga för att returnera data från tabellen dbo.Inventory.

  1. Från kommandotolken sqlcmd anger du en fråga som returnerar rader från tabellen dbo.Inventory där kvantiteten är större än 152:

    SELECT *
    FROM dbo.Inventory
    WHERE quantity > 152;
    
  2. Kör kommandot:

    GO
    

Avsluta kommandotolken för sqlcmd

Om du vill avsluta din sqlcmd--session skriver du QUIT:

QUIT

Metodtips för prestanda

När du har installerat SQL Server på Linux läser du metodtipsen för att konfigurera Linux och SQL Server för att förbättra prestanda för produktionsscenarier. Mer information finns i rekommenderade praxis för prestanda och konfigurationsriktlinjer för SQL Server på Linux. Se .

Plattformsoberoende dataverktyg

Förutom sqlcmdkan du använda följande plattformsoberoende verktyg för att hantera SQL Server:

Verktyg Beskrivning
Azure Data Studio Ett plattformsoberoende verktyg för hantering av GUI-databaser.
Visual Studio Code En plattformsoberoende GUI-kodredigerare som kör Transact-SQL-instruktioner med mssql-tillägget.
PowerShell Core Ett plattformsoberoende automatiserings- och konfigurationsverktyg baserat på cmdletar.
mssql-cli Ett plattformsoberoende kommandoradsgränssnitt för att köra Transact-SQL kommandon.

Ansluta från Windows

SQL Server-verktyg i Windows ansluter till SQL Server-instanser i Linux på samma sätt som de ansluter till valfri SQL Server-fjärrinstans.

Om du har en Windows-dator som kan ansluta till din Linux-dator kan du prova samma steg i det här avsnittet från en Windows-kommandotolk som kör sqlcmd. Du måste använda linux-måldatorns namn eller IP-adress i stället för localhostoch se till att TCP-port 1433 är öppen på SQL Server-datorn. Om du har problem med att ansluta från Windows kan du läsa rekommendationer för felsökning av anslutningar.

Andra verktyg som körs i Windows men som ansluter till SQL Server i Linux finns i:

Andra distributionsscenarier

Andra installationsscenarier finns i följande resurser:

Svar på vanliga frågor finns i FAQ om SQL Server på Linux.

Bidra till SQL-dokumentation

Visste du att du kan redigera SQL-innehåll själv? Om du gör det hjälper du inte bara till att förbättra vår dokumentation, utan du får även kredit som deltagare på sidan.

Mer information finns i Så här bidrar du till SQL Server-dokumentationen