Prise en main des bases de données sur Sous-système Windows pour Linux

Ce guide pas à pas vous aidera à commencer à connecter votre projet dans WSL à une base de données. Prise en main de MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server ou SQLite.

Prérequis

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

Les options les plus courantes pour un système de base de données sont les suivantes :

MySQL est une base de données relationnelle SQL open source qui organise les données dans 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. Il est actuellement le plus largement utilisé des quatre systèmes de base de données.

PostgreSQL (parfois appelé Postgres) est également une base de données relationnelle SQL open source qui met 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 configurés sur des serveurs dont la fonction principale est de stocker et de récupérer des données comme demandé par les applications logicielles.

SQLite est une base de données autonome, basée sur des fichiers et « serverless », connue pour sa portabilité, sa fiabilité et ses bonnes performances, même dans les 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 machines plus petites feront le travail à votre place. Il est utile pour la flexibilité et les données non structurées, ainsi que pour la mise en cache de l’analytique 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. Redis est connu pour sa flexibilité, ses performances et sa large prise en charge linguistique. Il est suffisamment flexible pour être utilisé comme cache ou broker de messages et peut utiliser des structures de données telles que des listes, des ensembles et des hachages.

Le tri de la base de données que vous choisissez doit dépendre du type d’application avec lequel vous allez utiliser la base de données. Nous vous recommandons de rechercher les avantages et les inconvénients des bases de données structurées et non structurées et de choisir en fonction de votre cas d’utilisation.

Installer MySQL

Pour installer MySQL sur WSL (par exemple. Ubuntu) :

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

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 racines distantes et les exemples d’utilisateurs. Pour exécuter le script de sécurité :

  1. Démarrez un serveur MySQL : sudo /etc/init.d/mysql start
  2. Démarrez les invites du script de sécurité : sudo mysql_secure_installation
  3. La première invite vous demande si vous souhaitez configurer le plug-in Validate Password, qui peut être utilisé pour tester la force de votre mot de passe MySQL. Vous allez ensuite définir un mot de passe pour l’utilisateur racine MySQL, décider s’il faut supprimer ou non les utilisateurs anonymes, décider s’il faut autoriser l’utilisateur racine à se connecter localement et à distance, décider s’il faut supprimer la base de données de test et, enfin, décider de recharger immédiatement les tables de privilèges.

Pour ouvrir l’invite MySQL, entrez : sudo mysql

Pour voir les bases de données disponibles, dans l’invite MySQL, entrez : SHOW DATABASES;

Pour créer une base de données, entrez : CREATE DATABASE database_name;

Pour supprimer une base de données, entrez : DROP DATABASE database_name;

Pour plus d’informations 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.

Installation de PostgreSQL

Pour installer PostgreSQL sur WSL (par exemple. Ubuntu) :

  1. Ouvrez votre terminal WSL (par exemple. 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 l’interpréteur de commandes 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=#

Notes

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 -c "\du" à partir de votre terminal WSL... ou simplement \du si le shell psql est ouvert. Cette commande affiche les colonnes suivantes : Nom d’utilisateur du compte, Liste des attributs de rôles et Membre des groupes de rôles. Pour quitter et revenir à la ligne de commande, entrez : q.

Pour plus d’informations sur l’utilisation des bases de données PostgreSQL, consultez la documentation PostgreSQL.

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

Installer MongoDB

Pour installer MongoDB (version 5.0) sur WSL (Ubuntu 20.04) :

  1. Ouvrez votre terminal WSL (par exemple. Ubuntu) et accédez à votre répertoire de base : cd ~
  2. Mettez à jour vos packages Ubuntu : sudo apt update
  3. Importez la clé publique utilisée par le système de gestion des packages MongoDB : wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  4. Créez un fichier de liste pour MongoDB : echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  5. Rechargez la base de données de package locale : sudo apt-get update
  6. Installez les packages MongoDB : sudo apt-get install -y mongodb-org
  7. Confirmez l’installation et récupérez le numéro de version : mongod --version
  8. Créez un répertoire pour stocker des données : mkdir -p ~/data/db
  9. Exécutez une instance Mongo : sudo mongod --dbpath ~/data/db
  10. Vérifiez que votre instance MongoDB s’exécute avec : ps -e | grep 'mongod'
  11. Pour quitter l’interpréteur de commandes MongoDB, utilisez les touches de raccourci : Ctrl + C

Conseil

L’installation de MongoDB peut nécessiter des étapes légèrement différentes en fonction de la distribution Linux utilisée pour l’installation. Consultez les tutoriels d’installation de MongoDB. Notez également que l’installation de MongoDB peut différer en fonction de la version # que vous souhaitez installer. Utilisez la liste déroulante version dans le coin supérieur gauche de la documentation MongoDB pour sélectionner la version qui correspond à votre objectif.

Différences système mongoDB init

Dans l’exemple ci-dessus, nous avons exécuté MongoDB directement. D’autres didacticiels peuvent démarrer MongoDB à l’aide du système d’exploitation intégré init. Vous pouvez voir la commande sudo systemctl status mongodb utilisée dans des tutoriels ou des articles. Actuellement, WSL ne prend pas en charge systemd (un système de gestion des services dans Linux).

Vous ne devriez pas remarquer de différence. Toutefois, si un tutoriel recommande l’utilisation de sudo systemctl, utilisez plutôt sudo /etc/init.d/. Par exemple, sudo systemctl status docker, pour WSL ce serait sudo /etc/init.d/docker status. Vous pouvez également utiliser sudo service docker status.

Ajouter le script init pour démarrer MongoDB en tant que service

Les instructions d’installation ci-dessus installent une version de MongoDB qui n’inclut pas de script automatiquement dans /etc/init.d/. Si vous souhaitez utiliser les commandes de service, vous pouvez télécharger le script init.d pour mongodb à partir de cette source, le placer manuellement en tant que fichier sur ce chemin : /etc/init.d/mongodb puis vous pouvez démarrer Mongo en tant que service à l’aide sudo service mongodb startde .

  1. Téléchargez le script init.d pour MongoDB : curl https://raw.githubusercontent.com/mongodb/mongo/master/debian/init.d | sudo tee /etc/init.d/mongodb >/dev/null
  2. Attribuez ces autorisations d’exécutable de script : sudo chmod +x /etc/init.d/mongodb
  3. Vous pouvez maintenant utiliser les commandes de service MongoDB :
    • sudo service mongodb status pour vérifier l’état de votre base de données. Vous devriez voir une réponse [Échec] si aucune base de données n’est en cours d’exécution.
    • sudo service mongodb start pour commencer à exécuter votre base de données. Une réponse [OK] doit s’afficher.
    • sudo service mongodb stop pour arrêter l’exécution de votre base de données.
  4. Vérifiez que vous êtes connecté au serveur de base de données avec la commande de diagnostic : mongo --eval 'db.runCommand({ connectionStatus: 1 })' cette opération génère la version actuelle de la base de données, l’adresse et le port du serveur, ainsi que la sortie de la commande d’état. La valeur 1 du champ « OK » dans la réponse indique que le serveur fonctionne.

Notes

MongoDB possède plusieurs paramètres par défaut, notamment le stockage des données dans/Data/DB et leur exécution sur le port 27017. En outre, mongod est le démon (processus hôte pour la base de données) et mongo est le shell de ligne de commande qui se connecte à une instance spécifique de mongod.

VS Code prend en charge l’utilisation des bases de données MongoDB via l’extension Azure CosmosDB. Vous pouvez créer, gérer et interroger des bases de données MongoDB à partir de VS Code. Pour en savoir plus, consultez la documentation VS Code : Utilisation de MongoDB.

Pour plus d’informations, consultez la documentation MongoDB :

Installer Microsoft SQL Server

Pour installer SQL Server sur WSL (ie. Ubuntu), suivez ce guide de démarrage rapide : Installer SQL Server et créer une base de données sur Ubuntu.

Notes

Bien qu’il soit possible d’installer et de configurer SQL Server sur WSL, il ne s’agit pas d’une configuration prise en charge. En outre, SQL Server sur Linux nécessite systemd, qui n’est pas inclus dans WSL.

Pour utiliser des bases de données Microsoft SQL Server dans VS Code, essayez l’extension MSSQL.

Installer SQLite

Pour installer SQLite sur WSL (par exemple, Ubuntu) :

  1. Ouvrez votre terminal WSL (par exemple. 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 afficher la liste de vos bases de données SQLite, entrez : .databases

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

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

Maintenant, l’entrée de .dbinfo ?DB? affiche 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 utiliser des bases de données SQLite dans VS Code, essayez l’extension SQLite.

Installer Redis

Pour installer Redis sur WSL (par exemple, Ubuntu) :

  1. Ouvrez votre terminal WSL (par exemple. 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 communiquer avec Redis) : redis-cli ping cela doit 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 utiliser 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 afficher les services 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.

Dépannage

Erreur : argument fdatasync non valide de synchronisation d’annuaire

Vérifiez que vous exécutez votre distribution Linux en mode WSL 2. Pour obtenir de l’aide sur le passage de WSL 1 à WSL 2, consultez Définir votre version de distribution sur WSL 1 ou WSL 2.

Ressources supplémentaires