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 avsystemctl
kommandon. Kontrollera att du aktiverarsystemd
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.
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 ärlocalhost
. Användarnamnet ärsa
och lösenordet är det du angav försa
-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.Om det lyckas bör du komma till en sqlcmd kommandotolk:
1>
.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
.
Från kommandotolken sqlcmd klistrar du in följande Transact-SQL kommando för att skapa en testdatabas:
CREATE DATABASE TestDB;
På nästa rad skriver du en fråga för att returnera namnet på alla databaser på servern:
SELECT Name FROM sys.databases;
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.Inventory
och infoga två nya rader.
Från kommandotolken sqlcmd växlar du kontexten till den nya
TestDB
databasen:USE TestDB;
Skapa en ny tabell med namnet
dbo.Inventory
:CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id) );
Infoga data i den nya tabellen:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150); INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
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
.
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;
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 localhost
och 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:
- Uppgradera: Lär dig hur du uppgraderar en befintlig installation av SQL Server i Linux
- Avinstallera: Avinstallera SQL Server på Linux
- Obevakad installation: Lär dig hur du skriptar installationen utan frågor
- Offlineinstallation: Lär dig hur du manuellt laddar ned paketen för offlineinstallation
Svar på vanliga frågor finns i FAQ om SQL Server på Linux.
Relaterat innehåll
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