Lezen in het Engels

Delen via


Quickstart: SQL Server installeren en een database maken in het Windows-subsysteem voor Linux (WSL 2)

van toepassing op:SQL Server- - Linux

Windows-subsysteem voor Linux (WSL) is een functie in Windows waarmee u een Linux-omgeving rechtstreeks op uw Windows-computer kunt uitvoeren, zonder dat u een virtuele machine of dubbel opstarten nodig hebt. WSL biedt een naadloze en productieve ervaring voor ontwikkelaars die windows en Linux tegelijkertijd willen gebruiken. Voor meer informatie, zie Wat is het Windows-subsysteem voor Linux?

SQL Server op WSL is alleen bedoeld voor ontwikkelingsgebruik

SQL Server op WSL 2 is alleen bedoeld voor ontwikkelingsdoeleinden en wordt niet ondersteund voor productieworkloads. We raden u aan SQL Server uit te voeren in WSL-omgevingen op een van de Ondersteunde platforms zoals gedocumenteerd, voor de versie van SQL Server die u wilt uitvoeren.

Voor eventuele problemen met betrekking tot ondersteuning kunt u ondersteuning krijgen van Microsoft.

Aan de slag met SQL Server op WSL 2

Er zijn twee manieren om aan de slag te gaan met SQL Server op WSL 2:

  • Installeer SQL Server als een systemd-service, die kan worden beheerd met behulp van systemctl opdrachten. Zorg ervoor dat u systemd inschakelt op WSL. Zie voor meer informatie Hoe systemd in te schakelen.

  • SQL Server-containers implementeren in WSL. Voor deze optie moet u een Linux-containerengine installeren in WSL, zoals Docker of Podman, en vervolgens SQL Server-containers implementeren.

Voorwaarden

Installeer WSL 2. Zorg ervoor dat u Windows 10 versie 2004 of hoger gebruikt (build 19041 en hoger) of Windows 11. Als u WSL wilt installeren, opent u een PowerShell- of Windows-opdrachtprompt in de beheerdersmodus en voert u de volgende opdracht uit:

Console
wsl --install

Zie Linux installeren in Windows met WSLvoor gedetailleerde instructies. Zie Een WSL-ontwikkelomgeving instellenvoor meer informatie over het instellen van de WSL-omgeving voor ontwikkeling.

SQL Server installeren in WSL

In deze sectie worden de stappen beschreven voor het instellen van een Linux-distributie in WSL en het installeren van SQL Server in die Linux-distributie.

Linux-distributie kiezen

U kunt alle geldige distributies weergeven die in WSL kunnen worden geïnstalleerd met behulp van de volgende opdracht:

Console
wsl -l -o

De uitvoer ziet er ongeveer als het volgende voorbeeld uit.

Output
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

Voor deze quickstart installeert u Ubuntu 22.04 en installeert u VERVOLGENS SQL Server 2022 in die distributie.

Voer de volgende opdracht uit om Ubuntu 22.04 te installeren. Noteer het UNIX-gebruikersaccount en wachtwoord. In dit voorbeeld gebruikt u wsluser als gebruikersnaam.

Console
wsl --install -d Ubuntu-22.04

Je zou een uitvoer moeten zien die lijkt op het volgende voorbeeld. Aan het einde moet worden weergegeven dat u bent aangemeld bij de Ubuntu 22.04 bash-shell.

Output
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.

SQL Server installeren

Zodra u bent aangemeld bij de Ubuntu 22.04 bash-shell, kunt u de stappen volgen die worden beschreven in quickstart: SQL Server installeren en een database maken op Ubuntu om SQL Server 2022 te installeren.

U moet ook de opdrachtregelprogramma's van SQL Server installeren.

IP-adres ophalen

Als u het IP-adres wilt identificeren waarmee u verbinding wilt maken met behulp van SQL Server Management Studio (SSMS), voert u de opdracht ifconfig als volgt uit:

Bash
ifconfig

De uitvoer moet er ongeveer uitzien zoals het volgende voorbeeld.

Output
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

SQL Server-containers implementeren in WSL

Als u containers in WSL wilt implementeren, moet u eerst een Linux-containerengine, zoals Docker, installeren. Zie Aan de slag met Externe Docker-containers op WSLvoor meer informatie. Nadat u de Docker-engine hebt geïnstalleerd, implementeert u de SQL Server-containerinstallatiekopieën als volgt.

Bash
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

Notitie

Uw wachtwoord moet voldoen aan het standaard wachtwoordbeleid van SQL Server . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

Permanente opslag toevoegen met WSL voor SQL Server-containers

U kunt gegevensvolumes maken zoals beschreven in Een hostmap koppelen als gegevensvolume.

Voer bijvoorbeeld de volgende opdracht uit om een volume met de naam sql_volume op /var/opt/mssql/in te stellen.

Bash
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

Zelfs als u de opdracht wsl --terminate uitvoert, gaan de gegevens niet verloren. Wanneer u WSL opnieuw start en de opdracht docker run uitvoert om te implementeren met behulp van het sql_volume volume, bevat deze nog steeds alle gegevens intact.

Als u het persistente volume wilt verwijderen, controleert u of de container die het volume gebruikt, is gestopt en verwijderd en voert u de volgende opdracht uit.

Bash
docker volume rm sql_volume

Opmerkingen

U moet de meeste functies kunnen configureren die worden ondersteund voor SQL Server op Linux voor ontwikkelingsdoeleinden, met uitzondering van de functies voor bedrijfscontinuïteit die afhankelijk zijn van clusteringstacks. Deze functies, zoals Pacemaker of HPE Serviceguard, worden niet ondersteund in WSL.

Zie -edities en ondersteunde functies van SQL Server 2022 op Linux voor een volledige lijst met niet-ondersteunde functies voor SQL Server op Linux.

Lokaal verbinding maken

In de volgende stappen wordt sqlcmd- gebruikt om lokaal verbinding te maken met uw nieuwe SQL Server-exemplaar.

Waarschuwing

Uw wachtwoord moet voldoen aan het standaard SQL Server wachtwoordbeleid. Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.

  1. Voer sqlcmd- uit met parameters voor uw SQL Server-naam (-S), de gebruikersnaam (-U) en het wachtwoord (-P). In deze handleiding maakt u lokaal verbinding, zodat de servernaam localhostis. De gebruikersnaam wordt sa en het wachtwoord is het wachtwoord dat u tijdens de installatie hebt opgegeven voor het sa-account.

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

    Notitie

    Nieuwere versies van sqlcmd- zijn standaard beveiligd. Zie sqlcmd-hulpprogramma voor Windows en Verbinding maken met sqlcmd voor Linux en macOS voor meer informatie over verbindingsversleuteling. Als de verbinding niet lukt, kunt u de optie -No toevoegen aan sqlcmd om aan te geven dat versleuteling optioneel is in plaats van verplicht.

    U kunt het wachtwoord op de opdrachtregel weglaten, zodat u wordt gevraagd het in te voeren.

    Als u later besluit om op afstand verbinding te maken, geeft u de computernaam of het IP-adres op voor de parameter -S en controleert u of poort 1433 is geopend op uw firewall.

  2. Als dit lukt, gaat u naar een sqlcmd opdrachtprompt: 1>.

  3. Als er een verbindingsfout optreedt, probeert u eerst het probleem te diagnosticeren vanuit het foutbericht. Bekijk vervolgens de aanbevelingen voor het oplossen van verbindingsproblemen.

Gegevens maken en er query's op uitvoeren

In de volgende secties wordt uitgelegd hoe u sqlcmd- gebruikt om een nieuwe database te maken, gegevens toe te voegen en een eenvoudige query uit te voeren.

Voor meer informatie over het schrijven van Transact-SQL instructies en query's, zie Zelfstudie: Transact-SQL instructies schrijven.

Een nieuwe database maken

Met de volgende stappen maakt u een nieuwe database met de naam TestDB.

  1. Plak in de opdrachtprompt sqlcmd de volgende Transact-SQL opdracht om een testdatabase te maken:

    SQL
    CREATE DATABASE TestDB;
    
  2. Schrijf op de volgende regel een query om de naam van alle databases op uw server te retourneren:

    SQL
    SELECT Name
    FROM sys.databases;
    
  3. De vorige twee opdrachten worden niet onmiddellijk uitgevoerd. U moet GO op een nieuwe regel typen om de vorige opdrachten uit te voeren:

    SQL
    GO
    

Gegevens invoegen

Maak vervolgens een nieuwe tabel, dbo.Inventoryen voeg twee nieuwe rijen in.

  1. Vanaf de opdrachtprompt van sqlcmd, schakel over naar de nieuwe TestDB-database:

    SQL
    USE TestDB;
    
  2. Maak een nieuwe tabel met de naam dbo.Inventory:

    SQL
    CREATE TABLE dbo.Inventory
    (
        id INT,
        name NVARCHAR (50),
        quantity INT,
        PRIMARY KEY (id)
    );
    
  3. Gegevens invoegen in de nieuwe tabel:

    SQL
    INSERT INTO dbo.Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO dbo.Inventory
    VALUES (2, 'orange', 154);
    
  4. Typ GO om de vorige opdrachten uit te voeren:

    SQL
    GO
    

Gegevens selecteren

Voer nu een query uit om gegevens uit de dbo.Inventory tabel te retourneren.

  1. Voer vanuit de opdrachtprompt sqlcmd een query in waarmee rijen worden geretourneerd uit de dbo.Inventory tabel waarin de hoeveelheid groter is dan 152:

    SQL
    SELECT *
    FROM dbo.Inventory
    WHERE quantity > 152;
    
  2. Voer de opdracht uit:

    SQL
    GO
    

De sqlcmd-opdrachtprompt afsluiten

Als u uw sqlcmd-sessie wilt beëindigen, typt u QUIT:

SQL
QUIT

Best practices voor prestaties

Nadat u SQL Server in Linux hebt geïnstalleerd, bekijkt u de aanbevolen procedures voor het configureren van Linux en SQL Server om de prestaties voor productiescenario's te verbeteren. Zie Best practices en configuratierichtlijnen voor SQL Server op Linuxvoor meer informatie.

Platformoverschrijdende hulpprogramma's voor gegevens

Naast sqlcmdkunt u de volgende platformoverschrijdende hulpprogramma's gebruiken om SQL Server te beheren:

Werktuig Beschrijving
Azure Data Studio- Een hulpprogramma voor platformoverschrijdend GUI-databasebeheer.
Visual Studio Code Een platformoverschrijdende GUI-code-editor die Transact-SQL instructies uitvoert met de mssql-extensie.
PowerShell Core- Een platformoverschrijdend automatiserings- en configuratiehulpprogramma op basis van cmdlets.
mssql-cli Een platformoverschrijdende opdrachtregelinterface voor het uitvoeren van Transact-SQL opdrachten.

Verbinding maken vanuit Windows

SQL Server-hulpprogramma's in Windows maken verbinding met SQL Server-exemplaren op Linux op dezelfde manier als ze verbinding zouden maken met een extern SQL Server-exemplaar.

Als u een Windows-computer hebt die verbinding kan maken met uw Linux-computer, voert u dezelfde stappen in dit onderwerp uit vanaf een Windows-opdrachtprompt waarop sqlcmd-wordt uitgevoerd. U moet de naam of het IP-adres van de Linux-doelcomputer gebruiken in plaats van localhosten ervoor zorgen dat TCP-poort 1433 is geopend op de SQL Server-machine. Als u problemen ondervindt met het maken van verbinding vanuit Windows, raadpleegt u aanbevelingen voor het oplossen van verbindingsproblemen.

Voor andere hulpprogramma's die worden uitgevoerd in Windows, maar verbinding maken met SQL Server in Linux, raadpleegt u:

Andere uitrolscenario's

Zie de volgende bronnen voor andere installatiescenario's:

  • upgrade-: informatie over het upgraden van een bestaande installatie van SQL Server op Linux
  • Verwijderen: SQL Server verwijderen in Linux
  • installatie zonder toezicht: informatie over het uitvoeren van een script voor de installatie zonder prompts
  • offline-installatie: informatie over het handmatig downloaden van de pakketten voor offline-installatie

Raadpleeg de SQL Server op Linux FAQvoor antwoorden op veelgestelde vragen.

Bijdragen aan SQL-documentatie

Wist u dat u zelf SQL-inhoud kunt bewerken? Als u dit doet, helpt u niet alleen onze documentatie te verbeteren, maar wordt u ook erkend als een bijdrager aan de pagina.

Zie Bijdragen aan sql Server-documentatie voor meer informatie