Premiers pas avec les bases de données sur le Sous-système Windows pour Linux

Ce guide étape par étape vous aidera à démarrer la connexion de votre projet dans WSL à une base de données. Démarrez avec MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server ou SQLite.

Prérequis

Différences entre les systèmes de base de données

Certains des choix les plus populaires pour un système de base de données incluent :

MySQL est une base de données relationnelle SQL open source, organisant les données en une ou plusieurs tables dans lesquelles les types de données peuvent être liés les uns aux autres. Il est évolutif verticalement, ce qui signifie qu'une machine ultime fera le travail pour vous. C'est actuellement le plus utilisé des quatre systèmes de bases de données.

PostgreSQL (parfois appelé Postgres) est également une base de données relationnelle SQL open source mettant l'accent sur l'extensibilité et la conformité aux normes. Il peut désormais gérer JSON, mais il est généralement recommandé pour les données structurées, la montée en charge verticale et les besoins ACID, tels que le commerce électronique et les transactions financières.

Microsoft SQL Server inclut SQL Server sur Windows, SQL Server sur Linux et SQL sur Azure. Il s'agit également de systèmes de gestion de bases de données relationnelles installés sur des serveurs dont la fonction principale est de stocker et de récupérer des données demandées par des applications logicielles.

SQLite est une base de données open source autonome, basée sur des fichiers et "serverless", connue pour sa portabilité, sa fiabilité et ses bonnes performances, même dans des environnements à faible mémoire.

MongoDB est une base de données de documents NoSQL open source conçue pour fonctionner avec JSON et stocker des données sans schéma. Il est évolutif horizontalement, ce qui signifie que plusieurs petites machines feront le travail pour vous. C'est bon pour la flexibilité et les données non structurées, et la mise en cache des analyses en temps réel.

Redis est un magasin de structure de données en mémoire NoSQL open source. Il utilise des paires clé-valeur pour le stockage au lieu de documents.

Installer MySQL

Pour installer MySQL sur une distribution Linux exécutée sur WSL, suivez simplement les instructions Installation de MySQL sur Linux dans la documentation MySQL. Vous devrez peut-être d’abord activer la prise en charge système dans votre fichier de configuration wsl.conf.

Exemple utilisant la distribution Ubuntu :

  1. Ouvrez votre ligne de commande Ubuntu et mettez à jour les packages disponibles : sudo apt update
  2. Une fois les packages mis à jour, installez MySQL avec : sudo apt install mysql-server
  3. Confirmez l’installation et récupérez le numéro de version : mysql --version
  4. Démarrez MySQL Server / vérifiez l’état : systemctl status mysql
  5. Pour ouvrir l'invite MySQL, saisissez : sudo mysql
  6. Pour voir quelles bases de données sont disponibles, dans l'invite MySQL, entrez : SHOW DATABASES;
  7. Pour créer une nouvelle base de données, entrez : CREATE DATABASE database_name;
  8. Pour supprimer une base de données, entrez : DROP DATABASE database_name;

Pour en savoir plus sur l'utilisation des bases de données MySQL, consultez la documentation MySQL.

Pour utiliser des bases de données MySQL dans VS Code, essayez l'extension MySQL.

Vous pouvez également exécuter le script de sécurité inclus. Cela modifie certaines des options par défaut les moins sécurisées pour des éléments tels que les connexions root à distance et les exemples d'utilisateurs. Ce script inclut également les étapes de modification du mot de passe pour l’utilisateur racine MySQL. Pour exécuter le script de sécurité :

  1. Démarrez un serveur MySQL : sudo service mysql start
  2. Démarrez les invites du script de sécurité : sudo mysql_secure_installation
  3. La première invite vous demandera si vous souhaitez configurer le composant valider le mot de passe (VALIDATE PASSWORD COMPONENT), qui peut être utilisé pour tester la force de votre mot de passe MySQL. Si vous souhaitez définir un mot de passe simple, vous ne devez pas définir ce composant.
  4. Vous définirez ou changerez ensuite le mot de passe pour l'utilisateur root de MySQL, déciderez de supprimer ou non les utilisateurs anonymes, d'autoriser ou non l'utilisateur root à se connecter à la fois localement et à distance, de supprimer la base de données de test et, enfin, de recharger immédiatement les tables de privilèges.

Installer PostgreSQL

Pour installer PostgreSQL sur WSL (c'est-à-dire Ubuntu):

  1. Ouvrez votre terminal WSL (c'est-à-dire Ubuntu).
  2. Mettez à jour vos packages Ubuntu : sudo apt update
  3. Une fois les packages mis à jour, installez PostgreSQL (et le package de contribution qui comporte des utilitaires utiles) avec : sudo apt install postgresql postgresql-contrib
  4. Confirmez l’installation et récupérez le numéro de version : psql --version

3 commandes sont à connaître une fois PostgreSQL installé :

  • sudo service postgresql status pour vérifier l’état de votre base de données.
  • sudo service postgresql start pour commencer à exécuter votre base de données.
  • sudo service postgresql stop pour arrêter l’exécution de votre base de données.

L’utilisateur administrateur par défaut, postgres, a besoin d’un mot de passe attribué afin de se connecter à une base de données. Pour définir un mot de passe :

  1. Entrez la commande : sudo passwd postgres
  2. Vous êtes invité à entrer votre nouveau mot de passe.
  3. Fermez et ouvrez de nouveau votre terminal.

Pour exécuter PostgreSQL avec le shell psql :

  1. Démarrez votre service Postgres : sudo service postgresql start
  2. Connectez-vous au service postgres et ouvrez le shell psql : sudo -u postgres psql

Une fois que vous avez correctement entré le shell psql, la modification de la ligne de commande se présente comme suit : postgres=#

Remarque

Vous pouvez également ouvrir le shell psql en basculant vers l’utilisateur postgres avec : su - postgres puis en entrant la commande : psql.

Pour quitter postgres=# entrez : \q ou utilisez la touche de raccourci : Ctrl+D

Pour connaître les comptes d’utilisateur qui ont été créés sur votre installation PostgreSQL, utilisez : psql --command="\du" à partir de votre terminal WSL... ou simplement \du si le shell psql est ouvert. Cette commande affichera les colonnes : Nom d'utilisateur du compte, Liste des attributs de rôles et Membre du ou des groupes de rôles. Pour quitter et revenir à la ligne de commande, entrez : q.

Pour en savoir plus sur l'utilisation des bases de données PostgreSQL, consultez la documentation PostgreSQL.

Pour travailler avec des bases de données PostgreSQL dans VS Code, essayez l’extension PostgreSQL.

Installer MongoDB

Pour installer MongoDB, consultez la documentation MongoDB : Installer MongoDB Community Edition sur Linux

L'installation de MongoDB peut nécessiter des étapes légèrement différentes selon la distribution Linux utilisée pour l'installation. Notez également que l'installation de MongoDB peut différer selon la version # que vous souhaitez installer. Utilisez la liste déroulante des versions dans le coin supérieur gauche de la documentation MongoDB pour sélectionner la version qui correspond à votre objectif. Enfin, vous devrez peut-être activer la prise en charge de systemd dans le fichier de configuration wsl.conf de la distribution Linux que vous utilisez avec WSL. La commande systemctl fait partie du système init systemd et peut ne pas fonctionner si votre distribution utilise systemv.

VS Code prend en charge l’utilisation de bases de données MongoDB par le biais de l’extension Azure Cosmos DB. Il est ainsi possible de créer des bases de données MongoDB, de les gérer et de les interroger dans VS Code. Pour en savoir plus, consultez la documentation VS Code : Travailler avec MongoDB.

Pour plus d’informations, consultez la documentation de MongoDB :

Installer Microsoft SQL Server

Pour installer SQL Server sur une distribution Linux exécutée par WSL, consultez : SQL Server sur Linux. Pour travailler avec des bases de données Microsoft SQL Server dans VS Code, essayez l'extension MSSQL.

Installez le package SQLite

Pour installer SQLite sur WSL (c'est-à-dire Ubuntu):

  1. Ouvrez votre terminal WSL (c'est-à-dire Ubuntu).
  2. Mettez à jour vos packages Ubuntu : sudo apt update
  3. Une fois les packages mis à jour, installez SQLite3 avec : sudo apt install sqlite3
  4. Confirmez l’installation et récupérez le numéro de version : sqlite3 --version

Pour créer une base de données de test, appelée "example.db", entrez : sqlite3 example.db

Pour voir une liste de vos bases de données SQLite, entrez : .databases

Pour voir l'état de votre base de données, entrez : .dbinfo ?DB?

La base de données sera vide après la création. Vous pouvez créer une nouvelle table pour votre base de données avec CREATE TABLE empty (kol INTEGER);.

Maintenant, entrer dans .dbinfo ?DB? affichera la base de données que vous avez créée.

Pour quitter l'invite SQLite, entrez : .exit

Pour plus d'informations sur l'utilisation d'une base de données SQLite, consultez la documentation SQLite.

Pour travailler avec des bases de données SQLite dans VS Code, essayez l'extension SQLite.

Installer Redis

Pour installer Redis sur WSL (c'est-à-dire Ubuntu):

  1. Ouvrez votre terminal WSL (c'est-à-dire Ubuntu).
  2. Mettez à jour vos packages Ubuntu : sudo apt update
  3. Une fois les packages mis à jour, installez Redis avec : sudo apt install redis-server
  4. Confirmez l’installation et récupérez le numéro de version : redis-server --version

Pour commencer à exécuter votre serveur Redis : sudo service redis-server start

Vérifiez si redis fonctionne (redis-cli est l'utilitaire d'interface de ligne de commande pour parler avec Redis) : redis-cli ping cela devrait renvoyer une réponse "PONG".

Pour arrêter l'exécution de votre serveur Redis : sudo service redis-server stop

Pour plus d'informations sur l'utilisation d'une base de données Redis, consultez la documentation Redis.

Pour travailler avec des bases de données Redis dans VS Code, essayez l'extension Redis.

Voir les services en cours d'exécution et configurer des alias de profil

Pour voir les services que vous avez actuellement en cours d'exécution sur votre distribution WSL, entrez : service --status-all

La saisie de sudo service mongodb start ou de sudo service postgres start et de sudo -u postgrest psql peut être fastidieuse. Toutefois, vous pouvez envisager de configurer des alias dans votre fichier .profile sur WSL pour accélérer l’utilisation de ces commandes et vous en souvenir plus facilement.

Pour configurer votre propre alias personnalisé, ou raccourci, pour l’exécution de ces commandes :

  1. Ouvrez votre terminal WSL et entrez cd ~ pour vous assurer d’être dans le répertoire racine.

  2. Ouvrez le fichier .profile, qui contrôle les paramètres de votre terminal, avec l’éditeur de texte de terminal, Nano : sudo nano .profile

  3. En bas du fichier (ne modifiez pas les paramètres de # set PATH), ajoutez ce qui suit :

    # My Aliases
    alias start-pg='sudo service postgresql start'
    alias run-pg='sudo -u postgres psql'
    

    Cela permettra d’entrer start-pg pour commencer à exécuter le service postgresql et run-pg pour ouvrir le shell psql. Vous pouvez modifier start-pg et run-pg et choisir n’importe quel nom. Veillez simplement à ne pas remplacer une commande que postgres utilise déjà !

  4. Une fois les nouveaux alias ajoutés, quittez l’éditeur de texte Nano à l’aide de la combinaison de touches Ctrl + X. Sélectionnez Y (Oui) lorsque vous êtes invité à enregistrer et à appuyer sur la touche Entrée (en laissant .profile comme nom de fichier).

  5. Fermez et rouvrez votre terminal WSL, puis essayez vos nouvelles commandes d’alias.

Résolution des problèmes

Erreur : synchronisation de répertoire fdatasync Argument non valide

Assurez-vous que vous exécutez votre distribution Linux en mode WSL 2. Pour obtenir de l'aide pour passer de WSL 1 à WSL 2, consultez Définir votre version de distribution sur WSL 1 ou WSL 2.

Ressources supplémentaires