TP-02 : Administration des Bases de Données MySQL
Absolument. Voici les 10 sujets de travaux pratiques, présentés sous forme d’énoncés sans les corrections, pour vous permettre de réaliser les exercices de manière autonome.
TP 1 : Installation, Sécurisation et Première Connexion
Objectifs : Maîtriser l’installation de base, sécuriser le serveur et se connecter.
Tâches à réaliser :
- Installer le serveur MySQL sur votre machine en utilisant le gestionnaire de paquets du système.
- Lancer le script de sécurité post-installation fourni par MySQL et appliquer toutes les recommandations pour sécuriser l’installation.
- Se connecter au serveur en tant qu’administrateur (
root) en utilisant le mot de passe défini à l’étape précédente. - Une fois connecté, afficher la liste de toutes les bases de données, la version du serveur et l’utilisateur actuel.
- Se déconnecter proprement du client MySQL.
TP 2 : Configuration du Serveur et Surveillance
Objectifs : Modifier la configuration du serveur et surveiller son état en temps réel.
Tâches à réaliser :
- Localiser sur le système de fichiers le répertoire contenant les fichiers de configuration de MySQL.
- Créer un nouveau fichier de configuration personnalisé pour augmenter le nombre maximal de connexions (
max_connections) à 200 et pour activer le journal des requêtes lentes (slow_query_log). - Redémarrer le service MySQL pour que les nouvelles configurations soient prises en compte.
- Se connecter à MySQL et vérifier que la variable
max_connectionsa bien la nouvelle valeur. - Ouvrir un second terminal, surveiller les processus actifs du serveur, puis depuis le premier terminal, exécuter une requête intentionnellement lente pour vérifier qu’elle est bien enregistrée dans le journal des requêtes lentes.
TP 3 : Création d’une Base de Données Complexes
Objectifs : Mettre en pratique les types de données et les moteurs de stockage.
Tâches à réaliser :
- Créer une base de données nommée
boutique. - À l’intérieur de cette base, créer une table
produitsen utilisant le moteur de stockage InnoDB. Cette table doit contenir une variété de types de données : un identifiant auto-incrémenté, des chaînes de caractères, un texte long, un nombre décimal, un booléen et un champ de type JSON. - Créer une seconde table
categoriesen utilisant cette fois le moteur de stockage MyISAM. - Insérer quelques enregistrements dans les deux tables, en s’assurant d’inclure des données structurées dans le champ JSON de la table
produits. - Rédiger et exécuter une requête SQL pour extraire une valeur spécifique du champ JSON.
TP 4 : Gestion des Utilisateurs et des Privilèges
Objectifs : Créer des utilisateurs avec des droits spécifiques selon le principe du moindre privilège.
Tâches à réaliser :
- En tant qu’administrateur, créer trois utilisateurs distincts :
app_admin,dev_useretreadonly_user, chacun avec un mot de passe robuste. - Attribuer à l’utilisateur
app_admintous les droits (tous les privilèges) sur la base de donnéesboutique. - Attribuer à l’utilisateur
dev_userles droits de lecture, d’insertion, de mise à jour et de suppression sur la baseboutique. - Attribuer à l’utilisateur
readonly_useruniquement le droit de lecture sur la baseboutique. - Se connecter successivement avec chacun de ces trois comptes et tester que les actions autorisées fonctionnent et que les actions interdites retournent bien une erreur.
TP 5 : Indexation et Analyse de Performance
Objectifs : Comprendre l’impact des index sur les performances des requêtes.
Tâches à réaliser :
- En utilisant la base
boutique, peupler la tableproduitsavec un grand volume de données (par exemple, des dizaines de milliers d’enregistrements). - Rédiger une requête qui recherche des informations dans une colonne non indexée (par exemple, une description). Analyser son plan d’exécution avec la commande
EXPLAIN. - Créer un index sur une colonne de la table
produitsqui est fréquemment utilisée pour des recherches (par exemple, la colonnenom). - Rédiger une requête de recherche sur cette colonne nouvellement indexée et analyser de nouveau son plan d’exécution.
- Comparer les résultats des deux analyses pour constater l’amélioration de performance apportée par l’index.
TP 6 : Sauvegarde et Restauration Logique
Objectifs : Mettre en place une stratégie de sauvegarde et tester une restauration.
Tâches à réaliser :
- Utiliser l’utilitaire en ligne de commande
mysqldumppour créer un fichier de sauvegarde complet de la base de donnéesboutique. - Compresser le fichier de sauvegarde obtenu pour économiser de l’espace disque.
- Simuler une erreur de manipulation en supprimant accidentellement une des tables de la base
boutique. - Utiliser le fichier de sauvegarde compressé pour restaurer intégralement la base de données
boutique. - Vérifier que la table supprimée a bien été restaurée avec toutes ses données.
TP 7 : Gestion des Transactions
Objectifs : Comprendre le comportement des transactions ACID et l’importance des commandes COMMIT et ROLLBACK.
Tâches à réaliser :
- Créer une table
comptes_bancairesadaptée aux transactions (avec le moteur InnoDB) contenant un titulaire et un solde. - Insérer deux comptes avec des soldes initiaux différents.
- Simuler un virement d’argent d’un compte à l’autre en encapsulant les opérations de mise à jour des soldes dans une transaction. Valider cette transaction avec
COMMITet vérifier que les soldes ont été correctement mis à jour. - Simuler un nouveau virement, mais après les opérations de mise à jour, annuler la transaction avec
ROLLBACK. Vérifier que cette fois, les soldes des comptes sont restés inchangés.
TP 8 : Utilisation des Vues
Objectifs : Créer et utiliser des vues pour simplifier l’accès aux données et renforcer la sécurité.
Tâches à réaliser :
- S’assurer que les tables
produitsetcategoriesde la baseboutiquesont correctement liées (par exemple, via une clé étrangèrecategorie_id). - Créer une vue nommée
details_produitsqui affiche pour chaque produit son nom, son prix et le nom de sa catégorie (en faisant une jointure). - Rédiger et exécuter une requête qui filtre les résultats de cette vue (par exemple, afficher les produits dont le prix est supérieur à une certaine valeur).
- En utilisant l’utilisateur
readonly_user(créé dans un TP précédent), vérifier qu’il peut interroger la vue pour obtenir des informations, sans avoir besoin d’un accès direct aux tables sous-jacentes.
TP 9 : Exportation et Importation de données (CSV)
Objectifs : Utiliser les commandes SQL pour exporter et importer des données depuis/vers un fichier CSV.
Tâches à réaliser :
- Rédiger une requête SQL utilisant
SELECT INTO OUTFILEpour exporter tout le contenu de la tablecategoriesdans un fichier CSV sur le serveur. - Se connecter au serveur via le terminal et vérifier que le fichier CSV a bien été créé et que son format est correct.
- Créer une table temporaire dans MySQL dont la structure est compatible avec les données du fichier CSV.
- Rédiger une requête SQL utilisant
LOAD DATA INFILEpour importer les données du fichier CSV dans cette nouvelle table. - Vérifier en interrogeant la table temporaire que toutes les données ont été correctement importées.
TP 10 : Maintenance des Tables et Partitionnement
Objectifs : Mettre en œuvre le partitionnement sur une table de logs et effectuer des tâches de maintenance.
Tâches à réaliser :
- Créer une table
logs_visitesdestinée à stocker des millions d’enregistrements. Partitionner cette table parRANGEsur l’année de la colonnedate_visite. - Insérer des données de test qui se répartissent sur au moins deux années différentes pour remplir plusieurs partitions.
- Utiliser la commande
EXPLAIN PARTITIONSpour vérifier qu’une requête filtrant sur une année spécifique utilise bien la partition correspondante. - Supprimer toutes les données d’une année en une seule commande, en supprimant la partition associée.
- Après de nombreuses insertions et suppressions sur une table InnoDB, effectuer une opération de maintenance (
OPTIMIZE TABLE) pour reconstruire la table et libérer l’espace inutilisé.
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur TP-02 : Administration des Bases de Données MySQL. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.