Aller au contenu principal

Installation de MySQL et Looping

Ce que ce chapitre apporte

  • Comprendre le modèle client-serveur de MySQL
  • Installer et configurer MySQL sur Windows ou macOS
  • Vérifier que l'installation fonctionne correctement
  • Maîtriser les commandes essentielles en ligne de commande
  • Prendre en main MySQL Workbench pour administrer une base graphiquement
  • Utiliser Looping MCD pour concevoir et exporter un modèle conceptuel

Avant d'écrire la moindre requête, il faut une base qui tourne. Ce chapitre installe le décor : MySQL comme service qui tourne en fond, un client pour lui parler, et Looping pour dessiner le modèle avant de le construire. C'est la seule étape du module où l'on ne fait pas de SQL, et celle qui bloque tout le monde si elle est bâclée.

Introduction à MySQL

Définition

MySQL est un Système de Gestion de Base de Données Relationnelles (SGBDR) open-source, gratuit et largement utilisé dans l'industrie.

Il repose sur un modèle client-serveur. MySQL tourne en permanence comme un service en arrière-plan sur la machine : c'est le serveur, et c'est lui qui détient les données. La ligne de commande et MySQL Workbench sont des clients : ils ne contiennent aucune donnée, ils envoient des requêtes SQL au service et affichent ce qu'il renvoie.

Cette séparation explique la panne la plus fréquente du chapitre. Si le service est arrêté, aucun client ne peut rien faire, même en local, et le message d'erreur parle alors de connexion refusée et non de SQL. Avant de soupçonner une requête, vérifier que le serveur tourne.

Essayer une requête sans rien installer

Installer MySQL reste indispensable dès qu'une base doit vivre quelque part pour de bon, avec ses comptes, ses droits et ses sauvegardes. Mais pour apprendre le langage, on n'a besoin d'attendre personne : dans les chapitres qui suivent, chaque bloc SQL porte un bouton Exécuter.

Comment ça marche

Le moteur est SQLite compilé en WebAssembly : il tourne entièrement dans le navigateur, sur une base de démonstration reconstruite avant chaque exécution. Rien n'est envoyé sur un serveur, rien n'est conservé : on peut lancer un DELETE catastrophique sans conséquence, la base repart intacte au clic suivant.

Le bouton Schéma affiche les tables disponibles et leurs colonnes.

SQLite n'est pas MySQL

Le cours est écrit en MySQL, le moteur de la page est SQLite. Pour tout ce qui compte ici (SELECT, jointures, GROUP BY, HAVING, sous-requêtes), les deux se comportent pareil, et c'est du SQL standard.

Les différences portent surtout sur l'administration et la création de tables : SHOW, DESCRIBE, USE, ENGINE=InnoDB, AUTO_INCREMENT, ENUM, GRANT sont propres à MySQL. Ces blocs-là ne sont pas exécutables et sont présentés sans bouton. Si l'une de ces commandes est saisie malgré tout, le moteur indique laquelle pose problème et par quoi la remplacer.

Le bac à sable de la page suffit pour apprendre le langage. Il ne suffit pas pour tenir une base qui doit survivre à la fermeture de l'onglet : c'est l'objet de l'installation qui suit.

Installation de MySQL

Téléchargement

Télécharger MySQL depuis le site officiel en choisissant le système d'exploitation utilisé.

Installation sous Windows

Pour Windows, deux options sont disponibles :

  • mysql-installer-community : installation complète en mode hors-ligne (recommandé)
  • mysql-installer-web-community : installation via Internet

Étapes d'installation

  1. Lancer le fichier téléchargé.
  2. Sélectionner « Developer Default ».
  3. Suivre l'assistant jusqu'à l'étape de configuration du compte.
  4. Définir un mot de passe pour l'utilisateur root, et le conserver par écrit : il est redemandé à chaque connexion et aucune procédure simple ne permet de le retrouver.
  5. Laisser le service MySQL s'installer et démarrer automatiquement.

Installation sous macOS

Sur macOS, l'installation se fait via Homebrew, le gestionnaire de paquets de référence.

Si Homebrew n'est pas encore installé sur la machine, ouvrir le Terminal et exécuter :

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Ensuite, installer et démarrer MySQL :

brew install mysql
brew services start mysql

Sécuriser ensuite l'installation (définit le mot de passe root et supprime les accès anonymes) :

mysql_secure_installation

Pour se connecter depuis le Terminal :

mysql -u root -p

Le mot de passe saisi ensuite ne s'affiche pas, pas même sous forme d'étoiles : c'est normal. L'invite mysql> qui apparaît est le signe que le client est connecté au serveur, et c'est là que s'écrivent les requêtes.

À retenir

Sur macOS, le service MySQL est géré par Homebrew. Pour le démarrer, l'arrêter ou vérifier son état :
brew services start mysql | brew services stop mysql | brew services list

Vérification de l'installation

Une installation qui se termine sans message d'erreur n'est pas encore une installation qui fonctionne. Deux requêtes suffisent à le prouver, lancées depuis le client en ligne de commande.

Commandes de vérification

SQL
-- Vérifier la version installée
SELECT VERSION();
-- Lister les bases existantes
SHOW DATABASES;

La première demande au serveur de dire qui il est : elle rend une seule ligne d'une seule colonne, le numéro de version du serveur installé. La seconde rend une ligne par base existante ; sur une installation neuve, seules apparaissent les bases système créées par MySQL, dont mysql et information_schema.

Les deux requêtes ne prouvent pas la même chose. La première prouve que le client atteint le serveur ; la seconde, que le compte utilisé a le droit de lire le catalogue. Obtenir la version sans obtenir la liste des bases désigne donc un problème de droits, pas un problème d'installation.

Trois échecs reviennent régulièrement, et chacun a sa cause :

MessageCe qu'il signifieGeste
Can't connect to MySQL serverLe service n'est pas démarrébrew services start mysql sur macOS, Gestionnaire de services sur Windows
Access denied for user 'root'Le service tourne, le mot de passe ne correspond pasRessaisir le mot de passe défini à l'installation
mysql: command not foundLe client n'est pas trouvé par le terminalAjouter le dossier bin de MySQL au PATH

Lire le message avant d'agir fait gagner l'essentiel du temps : les trois causes n'ont rien en commun et aucune réinstallation ne corrige les deux dernières.

Utilisation de MySQL en ligne de commande

Connexion au serveur

Windows : lancer l'utilitaire MySQL 8.0 Command Line Client depuis le menu Démarrer, puis saisir le mot de passe root.

macOS : ouvrir le Terminal et taper :

mysql -u root -p

Commandes essentielles

Gestion des bases de données

SQL
-- Créer une nouvelle base
CREATE DATABASE ma_base;
-- Lister toutes les bases
SHOW DATABASES;
-- Sélectionner une base pour y travailler
USE ma_base;
-- Supprimer une base (irréversible)
DROP DATABASE ma_base;

SHOW DATABASES affiche une liste. USE n'affiche rien, mais change la base courante : toutes les commandes suivantes s'y appliqueront, et oublier cette ligne est la cause la plus banale d'un « table introuvable ». DROP DATABASE ne demande aucune confirmation et ne s'annule pas.

Gestion des tables

SQL
-- Créer une table
CREATE TABLE Etudiant (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(40) NOT NULL,
prenom VARCHAR(40) NOT NULL,
date_naissance DATE NOT NULL
) ENGINE=InnoDB;
-- Visualiser la structure d'une table
DESCRIBE Etudiant;
-- Lister toutes les tables de la base active
SHOW TABLES;

DESCRIBE rend une ligne par colonne de la table, avec son type, sa nullabilité et son éventuel rôle de clé. C'est le moyen le plus rapide de vérifier qu'une table créée correspond bien au modèle prévu, avant d'y insérer quoi que ce soit.

À retenir

Utiliser INT AUTO_INCREMENT (et non SMALLINT) pour les identifiants : SMALLINT est limité à 32 767 valeurs, ce qui peut être insuffisant dès que la table grossit.

MySQL Workbench

Définition

MySQL Workbench est une interface graphique officielle pour administrer des bases de données MySQL. Elle permet de créer et modifier des bases et des tables visuellement, d'écrire et d'exécuter des requêtes SQL, et de visualiser les données sans passer par la ligne de commande.

Installation de Workbench

Télécharger MySQL Workbench depuis le site officiel.

Lancer l'installateur et conserver les options par défaut.

Créer une connexion au serveur local

Au premier lancement, Workbench affiche l'écran d'accueil avec la liste des connexions. Si aucune connexion n'existe :

Créer une connexion locale

  1. Cliquer sur le « + » à côté de MySQL Connections.
  2. Donner un nom à la connexion (ex : Local MySQL).
  3. Laisser Hostname à 127.0.0.1 et Port à 3306.
  4. Renseigner Username : root.
  5. Cliquer sur « Test Connection » pour vérifier, puis sur « OK ».

Cliquer ensuite sur la connexion créée pour l'ouvrir.

Créer une base de données et une table

Pour créer une nouvelle base de données (appelée « schéma » dans Workbench) :

  • Dans le panneau latéral gauche, clic droit et sélectionner « Create Schema… ».
  • Lui donner un nom (ex : ma_base) et cliquer sur Apply.

Pour créer une table dans cette base :

  • Sélectionner le schéma, puis clic droit sur « Tables » → « Create Table… ».
  • Nommer la table, définir ses colonnes avec les types appropriés (INT, VARCHAR, DATE...).
  • Cocher « PK » sur la colonne identifiant et « AI » pour l'auto-incrémentation.
  • Cliquer sur Apply : Workbench génère automatiquement le script SQL.

Script SQL généré par Workbench

SQL
CREATE TABLE Etudiant (
id INT NOT NULL AUTO_INCREMENT,
nom VARCHAR(40) NOT NULL,
prenom VARCHAR(40) NOT NULL,
date_naissance DATE NOT NULL,
PRIMARY KEY (id)
) ENGINE = InnoDB;

Comparer ce script avec celui écrit plus haut à la main : c'est la même table. Seule la clé primaire change de place, déclarée en fin de définition au lieu d'être accolée à la colonne. Les deux formes sont équivalentes, et Workbench produit systématiquement la seconde.

Visualiser et modifier les données

Depuis l'interface graphique, clic droit sur une table → « Select Rows, Limit 1000 » affiche les données dans un tableau éditable. On peut modifier des cellules directement et cliquer Apply pour valider.

Workbench administre une base qui existe déjà. Reste l'outil qui intervient avant elle, quand le modèle n'est pas encore arrêté.

Looping MCD

Définition

Looping MCD est un logiciel gratuit dédié à la modélisation conceptuelle de bases de données. Il permet de concevoir graphiquement un MCD, de poser les cardinalités, et de générer automatiquement le script SQL correspondant.

Installation de Looping MCD

Télécharger Looping MCD depuis le site officiel et lancer l'installation en suivant les étapes proposées.

Créer un modèle conceptuel

Étapes de modélisation

  1. Ouvrir Looping MCD et créer un nouveau modèle (Fichier → Nouveau).
  2. Créer une entité : double-cliquer sur le canvas, saisir le nom de l'entité (ex : Client) et ajouter ses attributs ligne par ligne. Le premier attribut devient automatiquement l'identifiant.
  3. Créer une seconde entité : même manipulation (ex : Commande).
  4. Créer une association : double-cliquer sur le canvas entre les deux entités, la nommer (ex : Passe), puis la relier aux entités en faisant glisser les connecteurs.
  5. Poser les cardinalités : cliquer sur chaque lien entre l'association et une entité pour saisir la cardinalité (ex : 0,N côté Client, 1,1 côté Commande).
  6. Ajouter éventuellement des attributs sur l'association (ex : dateCommande).
À retenir

Dans Looping, la cardinalité se lit du côté de l'entité vers l'association, et les deux nombres sont le minimum et le maximum de participations, dans cet ordre.
(0,N) côté Client se lit : « un client passe zéro, une ou plusieurs commandes ». (1,1) côté Commande se lit : « une commande est passée par un client et un seul ».

Générer le script SQL

Une fois le modèle terminé :

  • Aller dans « Génération » → « Script SQL ».
  • Sélectionner MySQL comme système cible.
  • Copier ou exporter le fichier .sql généré : il est prêt à être exécuté dans Workbench ou en ligne de commande.

Le script obtenu contient un CREATE TABLE par entité, plus les clés étrangères déduites des cardinalités. Le relire avant de l'exécuter reste indispensable : Looping traduit fidèlement le modèle dessiné, y compris ses erreurs.

La méthode

Procédure de vérification, à dérouler dans l'ordre après toute installation ou toute panne.

  1. Vérifier l'état du service avant tout le reste : brew services list sur macOS, Gestionnaire de services sur Windows. Tant qu'il est arrêté, aucun client ne répondra et aucune autre vérification n'a de sens.
  2. Se connecter avec mysql -u root -p. L'apparition de l'invite mysql> est la preuve que le client atteint le serveur.
  3. Lancer SELECT VERSION(); : une ligne de retour confirme que le serveur répond effectivement aux requêtes.
  4. Lancer SHOW DATABASES; : la liste des bases système confirme que le compte utilisé a le droit de lire.
  5. Créer puis supprimer une base d'essai avec CREATE DATABASE test_install; et DROP DATABASE test_install;. Le droit d'écrire ne se déduit pas du droit de lire, il se vérifie à part.
  6. En cas d'échec, lire le message avant d'agir : « connexion refusée » désigne le service, « accès refusé » le mot de passe, « commande introuvable » le PATH. Réinstaller ne corrige que le premier cas.
  7. Ouvrir Workbench en dernier. S'il échoue alors que la ligne de commande fonctionne, le défaut est dans la connexion enregistrée (hôte, port, compte), pas dans MySQL.

Synthèse

  • MySQL est un serveur : il tourne en service et détient les données. Ligne de commande et Workbench sont des clients, qui ne font que lui parler.
  • Une erreur de connexion n'accuse jamais le SQL : la première cause à écarter est un service arrêté.
  • L'installation passe par l'assistant officiel sur Windows, par brew install mysql puis brew services start mysql sur macOS.
  • Le mot de passe root défini pendant l'installation ne se retrouve pas : il se conserve au moment où il est choisi.
  • Une installation se déclare bonne quand SELECT VERSION(); et SHOW DATABASES; renvoient toutes deux un résultat, pas quand l'assistant se termine.
  • CREATE DATABASE, USE, SHOW TABLES et DESCRIBE forment le minimum vital en ligne de commande. DROP DATABASE est irréversible et ne demande aucune confirmation.
  • Un identifiant auto-incrémenté se déclare en INT et non en SMALLINT, dont le plafond de 32 767 valeurs se franchit plus vite qu'il n'y paraît.
  • MySQL Workbench sert à administrer une base existante : créer schémas et tables à la souris, écrire des requêtes, éditer les données, récupérer le SQL correspondant.
  • Looping MCD sert à modéliser avant la base : dessiner le MCD, poser les cardinalités, générer le script SQL à exécuter ensuite.
  • Une cardinalité se lit toujours du côté de l'entité : (min, max) compte les participations de cette entité à l'association.

Quiz

Vérification rapideon peut se reprendre

1.Pourquoi MySQL doit-il être démarré comme un service avant d'être utilisé ?

2.Les blocs SQL de ce cours s'exécutent dans la page. Sur quel moteur ?

3.Le cours est écrit en MySQL et le moteur de la page est SQLite. Sur quoi les deux diffèrent-ils ?

4.Quel type choisir pour une colonne d'identifiant qui s'incrémente ?

5.À quoi sert Looping dans la chaîne d'outils ?

Ressources complémentaires