Installation de MySQL et Looping
Ce que ce chapitre apporte6 points
- 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
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.
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.
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
- Lancer le fichier téléchargé.
- Sélectionner « Developer Default ».
- Suivre l'assistant jusqu'à l'étape de configuration du compte.
- 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. - 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.
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
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 :
| Message | Ce qu'il signifie | Geste |
|---|---|---|
Can't connect to MySQL server | Le 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 pas | Ressaisir le mot de passe défini à l'installation |
mysql: command not found | Le client n'est pas trouvé par le terminal | Ajouter 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
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
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.
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
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
- Cliquer sur le « + » à côté de MySQL Connections.
- Donner un nom à la connexion (ex :
Local MySQL). - Laisser Hostname à
127.0.0.1et Port à3306. - Renseigner Username :
root. - 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
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
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
- Ouvrir Looping MCD et créer un nouveau modèle (Fichier → Nouveau).
- 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. - Créer une seconde entité : même manipulation (ex :
Commande). - 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. - Poser les cardinalités : cliquer sur chaque lien entre l'association et une entité pour saisir la cardinalité (ex :
0,Ncôté Client,1,1côté Commande). - Ajouter éventuellement des attributs sur l'association (ex :
dateCommande).
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
.sqlgé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.
- Vérifier l'état du service avant tout le reste :
brew services listsur 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. - Se connecter avec
mysql -u root -p. L'apparition de l'invitemysql>est la preuve que le client atteint le serveur. - Lancer
SELECT VERSION();: une ligne de retour confirme que le serveur répond effectivement aux requêtes. - Lancer
SHOW DATABASES;: la liste des bases système confirme que le compte utilisé a le droit de lire. - Créer puis supprimer une base d'essai avec
CREATE DATABASE test_install;etDROP DATABASE test_install;. Le droit d'écrire ne se déduit pas du droit de lire, il se vérifie à part. - 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. - 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 mysqlpuisbrew services start mysqlsur macOS. - Le mot de passe
rootdé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();etSHOW DATABASES;renvoient toutes deux un résultat, pas quand l'assistant se termine. CREATE DATABASE,USE,SHOW TABLESetDESCRIBEforment le minimum vital en ligne de commande.DROP DATABASEest irréversible et ne demande aucune confirmation.- Un identifiant auto-incrémenté se déclare en
INTet non enSMALLINT, 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
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 ?