Partager via


Démarrage rapide : Installer SQL Server et créer une base de données sur le sous-système Windows pour Linux (WSL 2)

S’applique à :SQL Server sur Linux

Le sous-système Windows pour Linux (WSL) est une fonctionnalité de Windows qui vous permet d’exécuter un environnement Linux directement sur votre machine Windows, sans avoir besoin d’une machine virtuelle ou d’un double démarrage. WSL offre une expérience transparente et productive aux développeurs qui souhaitent utiliser Windows et Linux simultanément. Pour plus d’informations, consultez Qu’est-ce que le sous-système Windows pour Linux ?

SQL Server sur WSL est destiné uniquement au développement

SQL Server sur WSL 2 est destiné uniquement à des fins de développement et n’est pas pris en charge pour les charges de travail de production. Nous vous recommandons d’exécuter SQL Server dans des environnements WSL sur l’une des plateformes prises en charge comme documenté, pour la version de SQL Server que vous envisagez d’exécuter.

Pour tout problème lié au support, vous pouvez obtenir du support auprès de Microsoft.

Prise en main de SQL Server sur WSL 2

Il existe deux façons de bien démarrer avec SQL Server sur WSL 2 :

  • Installez SQL Server en tant que systemd service, qui peut être géré à l’aide systemctl de commandes. Veillez à activer systemd sur WSL. Pour plus d’informations, consultez Comment activer systemd.

  • Déployez des conteneurs SQL Server dans WSL. Pour cette option, vous devez installer un moteur de conteneur Linux dans WSL, tel que Docker ou Podman, puis déployer des conteneurs SQL Server.

Conditions préalables

Installez WSL 2. Vérifiez que vous exécutez Windows 10 version 2004 ou ultérieure (build 19041 et ultérieure) ou Windows 11. Pour installer WSL, ouvrez une invite de commandes PowerShell ou Windows en mode administrateur et suivez les instructions de la section suivante.

Pour obtenir des instructions détaillées, consultez Comment installer Linux sur Windows avec WSL. Pour plus d’informations sur la configuration de l’environnement WSL pour le développement, consultez Configurer un environnement de développement WSL.

Installer SQL Server dans WSL

Cette section décrit les étapes à suivre pour configurer une distribution Linux dans WSL et comment installer SQL Server dans cette distribution Linux.

Choisir une distribution Linux

Vous pouvez répertorier toutes les distributions valides qui peuvent être installées dans WSL à l’aide de la commande suivante :

wsl -l -o

La sortie doit ressembler à la suivante.

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

Pour ce guide de démarrage rapide, installez Ubuntu 22.04, puis installez SQL Server 2022 dans cette distribution.

Pour installer Ubuntu 22.04, exécutez la commande suivante. Notez le compte d’utilisateur UNIX et le mot de passe. Dans cet exemple, utilisez wsluser le nom d’utilisateur.

wsl --install -d Ubuntu-22.04

Vous devez obtenir une sortie similaire à la suivante. À la fin, il doit indiquer que vous êtes connecté à l’interpréteur de commandes Bash 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.

Installer SQL Server

Une fois connecté à l’interpréteur de commandes Bash Ubuntu 22.04, vous pouvez suivre les étapes décrites dans le guide de démarrage rapide : Installer SQL Server et créer une base de données sur Ubuntu pour installer SQL Server 2022.

Vous devez également installer les outils en ligne de commande SQL Server .

Obtenir l’adresse IP

Pour identifier l’adresse IP à laquelle vous connecter à l’aide de SQL Server Management Studio (SSMS), exécutez la ifconfig commande comme suit :

ifconfig

Vous devez obtenir une sortie similaire à la suivante.

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

Déployer des conteneurs SQL Server dans WSL

Pour déployer des conteneurs dans WSL, vous devez d’abord installer un moteur de conteneur Linux, tel que Docker. Pour plus d’informations, consultez Prise en main des conteneurs distants Docker sur WSL. Une fois le moteur Docker installé, déployez l’image conteneur SQL Server comme suit.

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

Lorsque vous déployez un conteneur pour SQL Server 2025 (17.x) ou une version ultérieure, utilisez-le MSSQL_PID=DeveloperStandard pour l’édition Développeur Standard et MSSQL_PID=Developer pour l’édition Enterprise Developer.

Remarque

Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.

Ajouter un stockage persistant avec WSL pour les conteneurs SQL Server

Vous pouvez créer des volumes de données comme décrit dans Monter un répertoire hôte en tant que volume de données.

Par exemple, exécutez la commande suivante pour configurer un volume appelé sql_volume à l’emplacement /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

Lorsque vous déployez un conteneur pour SQL Server 2025 (17.x) ou une version ultérieure, utilisez-le MSSQL_PID=DeveloperStandard pour l’édition Développeur Standard et MSSQL_PID=Developer pour l’édition Enterprise Developer.

Même si vous exécutez la wsl --terminate commande, les données ne sont pas perdues. Lorsque vous démarrez à nouveau WSL et exécutez la commande docker run pour déployer à l'aide du volume sql_volume, toutes les données restent intactes.

Si vous souhaitez supprimer le volume persistant, vérifiez que le conteneur utilisant le volume est arrêté et supprimé, puis exécutez la commande suivante.

docker volume rm sql_volume

Remarques

Vous devez être en mesure de configurer la plupart des fonctionnalités prises en charge pour SQL Server sur Linux à des fins de développement, à l’exception des fonctionnalités de continuité d’activité qui dépendent des piles de clustering. Ces fonctionnalités, telles que Pacemaker ou HPE Serviceguard, ne sont pas prises en charge sur WSL.

Pour obtenir la liste complète des fonctionnalités non prises en charge pour SQL Server sur Linux, consultez Éditions et fonctionnalités prises en charge de SQL Server 2022 sur Linux.

Se connecter localement

La procédure suivante utilise sqlcmd pour se connecter localement à votre nouvelle instance de SQL Server.

Avertissement

Votre mot de passe doit suivre la politique de mot de passe par défaut de SQL Server. Par défaut, le mot de passe doit avoir au moins huit caractères appartenant à trois des quatre groupes suivants : lettres majuscules, lettres minuscules, chiffres de base 10 et symboles. Les mots de passe peuvent comporter jusqu'à 128 caractères. Utilisez des mots de passe aussi longs et complexes que possible.

  1. Exécutez sqlcmd avec des paramètres pour le nom SQL Server (-S), le nom d’utilisateur (-U) et le mot de passe (-P). Dans ce tutoriel, vous vous connectez localement, donc le nom du serveur est localhost. Le nom d'utilisateur sa et le mot de passe sont ceux que vous avez fournis pour le compte sa lors de la configuration.

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

    Remarque

    Les versions plus récentes de sqlcmd sont sécurisées par défaut. Si vous souhaitez en savoir plus sur le chiffrement de connexion, veuillez consulter les rubriques Utilitaire sqlcmd pour Windows et Connexion avec sqlcmd pour Linux et macOS. Si la connexion échoue, vous pouvez ajouter l’option -No à sqlcmd pour spécifier que le chiffrement est facultatif, et non obligatoire.

    Vous pouvez omettre le mot de passe dans la ligne de commande pour être invité à l’entrer.

    Si vous décidez ultérieurement de vous connecter à distance, spécifiez l’adresse IP ou le nom de l’ordinateur pour le paramètre -S et vérifiez que le port 1433 est ouvert sur votre pare-feu.

  2. Si l’opération réussit, vous devez accéder à une invite de commandes sqlcmd : 1>.

  3. Si un échec de connexion s’affiche, tentez tout d’abord de diagnostiquer le problème à partir du message d’erreur. Examinez ensuite les recommandations en matière de résolution des problèmes de connexion.

Créer et interroger des données

Les sections suivantes vous guident lors de l’utilisation de sqlcmd pour créer une base de données, ajouter des données et exécuter une requête simple.

Pour plus d'informations sur l'écriture d'instructions et de requêtes Transact-SQL, consultez Tutoriel : Écriture d'instructions Transact-SQL.

Créer une base de données

La procédure suivante crée une base de données nommée TestDB.

  1. À partir de l’invite de commandes sqlcmd, collez la commande Transact-SQL suivante pour créer une base de données de test :

    CREATE DATABASE TestDB;
    
  2. Sur la ligne suivante, écrivez une requête pour retourner le nom de toutes les bases de données sur votre serveur :

    SELECT Name
    FROM sys.databases;
    
  3. Les deux commandes précédentes ne sont pas exécutées immédiatement. Vous devez taper GO sur une nouvelle ligne pour exécuter les commandes précédentes :

    GO
    

Insertion des données

Créez ensuite une table, dbo.Inventory, et insérez deux nouvelles lignes.

  1. À partir de l’invite de commandes sqlcmd, basculez le contexte vers la nouvelle base de données TestDB :

    USE TestDB;
    
  2. Créez une table nommée dbo.Inventory :

    CREATE TABLE dbo.Inventory
    (
        id INT,
        name NVARCHAR (50),
        quantity INT,
        PRIMARY KEY (id)
    );
    
  3. Insérez des données dans la nouvelle table :

    INSERT INTO dbo.Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO dbo.Inventory
    VALUES (2, 'orange', 154);
    
  4. Tapez GO pour exécuter les commandes précédentes :

    GO
    

Sélectionner les données

Exécutez maintenant une requête pour retourner des données de la table dbo.Inventory.

  1. Dans l’invite de commandes sqlcmd, entrez une requête qui retourne les lignes de la table dbo.Inventory dont la quantité est supérieure à 152 :

    SELECT *
    FROM dbo.Inventory
    WHERE quantity > 152;
    
  2. Exécutez la commande :

    GO
    

Quitter l'invite de commande sqlcmd

Pour mettre fin à votre session sqlcmd, tapez QUIT :

QUIT

Meilleures pratiques relatives aux performances

Après avoir installé SQL Server sur Linux, consultez les meilleures pratiques pour la configuration de Linux et SQL Server pour améliorer les performances des scénarios de production. Pour plus d'informations, consultez Meilleures pratiques relatives aux performances et lignes directrices de configuration pour SQL Server sur Linux.

Outils de données multiplateforme

En plus de sqlcmd, vous pouvez utiliser les outils multiplateformes suivants pour gérer SQL Server :

Outil Descriptif
Visual Studio Code Éditeur de code gui multiplateforme qui exécute des instructions Transact-SQL avec l’extension MSSQL.
PowerShell Outil d’automatisation et de configuration multiplateforme basé sur les cmdlets.
mssql-cli Une interface de ligne de commande multiplateforme pour l’exécution de commandes Transact-SQL.

Se connecter à partir de Windows

Les outils SQL Server sur Windows se connectent aux instances de SQL Server sous Linux de la même façon qu’à n’importe quelle instance distante de SQL Server.

Si vous disposez d’une machine Windows qui peut se connecter à votre ordinateur Linux, essayez les mêmes étapes dans cet article à partir d’une invite de commandes Windows exécutant sqlcmd. Vous devez utiliser le nom ou l'adresse IP de la machine Linux cible plutôt que localhost, et vous assurer que le port TCP 1433 est ouvert sur la machine SQL Server. Si vous avez des problèmes de connexion à partir de Windows, lisez les recommandations en matière de résolution des problèmes de connexion.

Pour d’autres outils qui s’exécutent sur Windows, mais se connectent à SQL Server sur Linux, consultez :

Autres scénarios de déploiement

Pour connaître les autres scénarios d’installation, consultez les ressources suivantes :

Pour obtenir des réponses aux questions fréquemment posées, consultez la FAQ de SQL Server sur Linux.

Contribuer à la documentation SQL

Saviez-vous que vous pouvez modifier vous-même le contenu SQL ? Si vous le faites, non seulement vous aidez à améliorer notre documentation, mais vous obtenez également un crédit en tant que contributeur à la page.

Pour plus d'informations, consultez Modifier la documentation Microsoft Learn.