Introduction
Dans ce laboratoire, nous explorerons les concepts fondamentaux de la gestion de bases de données avec MySQL. Nous aborderons la création et la suppression de bases de données, la sélection de bases de données et la récupération de métadonnées. Ces compétences sont essentielles pour quiconque travaille avec des bases de données, des débutants aux développeurs expérimentés. À la fin de ce laboratoire, vous disposerez d'une base solide sur les opérations courantes de gestion de bases de données MySQL.
Objectifs d'apprentissage
En terminant ce laboratoire, vous serez capable de :
- Créer et supprimer des bases de données en utilisant diverses méthodes
- Sélectionner et basculer entre différentes bases de données
- Récupérer des métadonnées importantes concernant votre serveur MySQL et vos bases de données
- Comprendre la sensibilité à la casse des noms de bases de données dans MySQL
Création et affichage de bases de données
Dans cette étape, nous apprendrons à créer des bases de données et à lister celles qui existent déjà en utilisant le client en ligne de commande MySQL. Il s'agit d'une compétence fondamentale pour tout administrateur de base de données ou développeur.
Tout d'abord, ouvrons une fenêtre de terminal. Dans l'environnement LabEx, vous utiliserez un système Ubuntu Linux. Le terminal devrait déjà être ouvert, mais si ce n'est pas le cas, vous pouvez l'ouvrir en cliquant sur l'icône du terminal.
Maintenant, lançons le client MySQL :
sudo mysql -u root
Dans la machine virtuelle LabEx, vous n'avez pas besoin de saisir de mot de passe pour l'utilisateur root.

Une fois dans le client MySQL, vous verrez une invite qui ressemble à ceci : MariaDB [(none)]>. Cela indique que vous êtes connecté au serveur MariaDB (qui est un fork de MySQL) mais que vous n'avez pas encore sélectionné de base de données spécifique.
Lister les bases de données disponibles
Commençons par lister les bases de données disponibles sur votre serveur MySQL :
SHOW DATABASES;
Vous devriez voir une sortie similaire à celle-ci :
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.000 sec)
Cette commande liste toutes les bases de données actuellement disponibles sur le serveur. Analysons ce que sont ces bases de données par défaut :
information_schema: Une base de données qui fournit un accès aux métadonnées des bases de données.mysql: La base de données système qui contient les informations sur les comptes utilisateurs et les privilèges.performance_schema: Une base de données destinée à surveiller l'exécution du serveur MySQL à un niveau bas.sys: Une base de données qui fournit un ensemble d'objets pour aider à interpréter les données collectées par le Performance Schema.
Créer une base de données
Maintenant, créons une nouvelle base de données appelée 'Hello_World'. Dans MySQL, nous utilisons la commande CREATE DATABASE pour cela :
CREATE DATABASE Hello_World;
Après avoir exécuté cette commande, MySQL répondra par :
Query OK, 1 row affected (0.000 sec)
Cela signifie que la base de données a été créée avec succès. Pour confirmer, listons à nouveau les bases de données :
SHOW DATABASES;
Vous devriez maintenant voir 'Hello_World' dans la liste :
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| Hello_World |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.000 sec)
Super ! Vous venez de créer votre première base de données.
Sensibilité à la casse des noms de bases de données
Un concept important à comprendre dans MySQL est que les noms de bases de données sont sensibles à la casse. Cela signifie que 'Hello_World' et 'hello_world' sont traités comme deux bases de données différentes. Démontrons cela :
CREATE DATABASE hello_world;
SHOW DATABASES;
Vous devriez maintenant voir à la fois 'Hello_World' et 'hello_world' dans la liste :
MariaDB [(none)]> CREATE DATABASE hello_world;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| Hello_World |
| hello_world |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.000 sec)
Cela démontre que 'Hello_World' et 'hello_world' sont traités comme deux bases de données distinctes. Dans la conception de vos bases de données, il est généralement recommandé d'utiliser des conventions de nommage cohérentes pour éviter toute confusion. De nombreux développeurs préfèrent utiliser uniquement des lettres minuscules pour les noms de bases de données afin d'éviter les problèmes potentiels liés à la sensibilité à la casse.
Créer des bases de données avec mysqladmin
Dans cette étape, nous explorerons une méthode alternative pour créer des bases de données en utilisant l'outil mysqladmin. Cet outil est un utilitaire en ligne de commande qui vous permet d'effectuer certaines opérations administratives sans entrer dans l'invite MySQL.
Tout d'abord, quittons le client MySQL. Vous pouvez le faire en tapant exit ou quit et en appuyant sur Entrée :
exit
Maintenant que nous sommes de retour à l'invite de commande habituelle, utilisons mysqladmin pour créer une nouvelle base de données :
sudo mysqladmin -u root create hello_world2
Dans cette machine virtuelle LabEx, utilisez sudo avec mysqladmin car le compte de base de données root utilise l'authentification par socket local.
La commande que nous venons d'utiliser se décompose comme suit :
sudo: Exécute la commande avec les privilèges système requis.-u root: Spécifie que nous nous connectons en tant qu'utilisateur de base de données root.create: Il s'agit de l'opération que nous effectuons.hello_world2: C'est le nom de la base de données que nous créons.
Maintenant, reconnectons-nous au client MySQL pour vérifier que notre nouvelle base de données a été créée :
sudo mysql -u root
Une fois dans le client MySQL, listez les bases de données :
SHOW DATABASES;
Vous devriez voir 'hello_world2' dans la liste :
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| Hello_World |
| hello_world |
| hello_world2 |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
7 rows in set (0.000 sec)
L'outil mysqladmin offre un moyen rapide de créer des bases de données directement depuis la ligne de commande, ce qui peut être utile pour les tâches de script et d'automatisation. C'est particulièrement pratique lorsque vous devez créer des bases de données dans le cadre d'un script plus large ou d'un processus automatisé.
Suppression de bases de données
Maintenant que nous avons créé plusieurs bases de données, apprenons à les supprimer. Dans la gestion de bases de données, il est tout aussi important de savoir comment supprimer des bases de données que de savoir comment les créer. Nous ne garderons que la base de données 'Hello_World' et supprimerons les autres.
Supprimer une base de données avec le client MySQL
Connectez-vous au client MySQL si ce n'est pas déjà fait :
sudo mysql -u root
Maintenant, supprimons la base de données 'hello_world' :
DROP DATABASE hello_world;
SHOW DATABASES;
Vous devriez voir que 'hello_world' ne figure plus dans la liste :
MariaDB [(none)]> DROP DATABASE hello_world;
Query OK, 0 rows affected (0.002 sec)
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| Hello_World |
| hello_world2 |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.000 sec)
Remarque : Soyez extrêmement prudent lorsque vous utilisez la commande DROP DATABASE. Elle supprime définitivement la base de données et tout son contenu sans demander de confirmation. Dans un environnement de production, vous auriez généralement des mesures de sécurité et des sauvegardes en place avant d'effectuer de telles opérations.
Supprimer une base de données avec mysqladmin
Maintenant, utilisons mysqladmin pour supprimer la base de données 'hello_world2'. Cette méthode est considérée comme plus sûre car elle demande une confirmation avant de supprimer la base de données.
Quittez le client MySQL en tapant exit ou quit, puis exécutez la commande suivante dans votre terminal :
sudo mysqladmin -u root drop hello_world2
Vous serez invité à confirmer l'action :
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'hello_world2' database [y/N] y
Database "hello_world2" dropped
Tapez 'y' et appuyez sur Entrée pour confirmer. Cette étape de confirmation supplémentaire peut aider à prévenir les suppressions accidentelles de bases de données.
Maintenant, reconnectez-vous au client MySQL et vérifiez que 'hello_world2' a bien été supprimée :
SHOW DATABASES;
Vous devriez voir :
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| Hello_World |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.000 sec)
Nous avons nettoyé avec succès nos bases de données supplémentaires, ne laissant que celles dont nous avons besoin.
Sélection et utilisation de bases de données
Maintenant que nous avons créé et supprimé des bases de données, apprenons à sélectionner et à utiliser une base de données spécifique. C'est une compétence cruciale, car la majeure partie de votre travail dans MySQL consistera à opérer au sein d'une base de données spécifique.
Sélectionner une base de données
Pour sélectionner une base de données avec laquelle travailler, utilisez la commande USE suivie du nom de la base de données :
USE Hello_World;
Vous devriez voir :
Database changed
Cela indique que vous travaillez désormais au sein de la base de données 'Hello_World'. Toutes les commandes suivantes que vous exécuterez seront effectuées dans le contexte de cette base de données, sauf indication contraire.
Lister les tables dans une base de données
Pour voir les tables dans la base de données actuelle, utilisez la commande SHOW TABLES; :
SHOW TABLES;
Comme nous n'avons pas encore créé de tables dans notre base de données 'Hello_World', vous verrez :
Empty set (0.00 sec)
C'est normal pour une nouvelle base de données. Au fur et à mesure que vous créerez des tables, elles apparaîtront dans cette liste.
Passons à une autre base de données et listons ses tables pour voir comment cela fonctionne avec une base de données remplie :
USE mysql;
SHOW TABLES;
Vous verrez une liste de tables dans la base de données système 'mysql' :
MariaDB [mysql]> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> SHOW TABLES;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| column_stats |
| columns_priv |
| db |
| event |
| func |
| general_log |
| global_priv |
| gtid_slave_pos |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| index_stats |
| innodb_index_stats |
| innodb_table_stats |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| roles_mapping |
| servers |
| slow_log |
| table_stats |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| transaction_registry |
| user |
+---------------------------+
31 rows in set (0.001 sec)
Cela démontre comment basculer entre les bases de données et visualiser leur contenu. La base de données 'mysql' contient des tables système que MySQL utilise pour gérer les permissions, les comptes utilisateurs et d'autres données internes. Dans vos propres applications, vous créerez et gérerez vos propres tables au sein de vos bases de données personnalisées.
Récupération des métadonnées MySQL
Dans cette dernière étape, nous explorerons comment récupérer divers types de métadonnées depuis MySQL. Les métadonnées sont des "données sur les données" - elles fournissent des informations sur le système de base de données lui-même, plutôt que sur les données stockées à l'intérieur. Ces informations peuvent être cruciales pour comprendre et gérer votre environnement MySQL.
Version du serveur
Pour obtenir la version du serveur MySQL, utilisez :
SELECT VERSION();
Vous verrez une sortie similaire à :
MariaDB [mysql]> SELECT VERSION();
+----------------------------------+
| VERSION() |
+----------------------------------+
| 10.6.12-MariaDB-0ubuntu0.22.04.1 |
+----------------------------------+
1 row in set (0.000 sec)
Ces informations sont utiles lorsque vous devez savoir quelles fonctionnalités sont disponibles dans votre version actuelle de MySQL, ou lors du dépannage de problèmes spécifiques à une version.
Base de données actuelle
Pour voir quelle base de données vous utilisez actuellement :
SELECT DATABASE();
La sortie affichera le nom de la base de données actuelle ou NULL si aucune base de données n'est sélectionnée :
MariaDB [mysql]> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| mysql |
+------------+
1 row in set (0.000 sec)
Cela peut être utile lorsque vous travaillez avec plusieurs bases de données et que vous devez confirmer dans laquelle vous opérez actuellement.
Utilisateur actuel
Pour voir l'utilisateur actuel :
SELECT USER();
Vous verrez une sortie comme :
MariaDB [mysql]> SELECT USER();
+----------------+
| USER() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.000 sec)
Cela montre l'utilisateur MySQL sous lequel vous êtes connecté et l'hôte depuis lequel vous vous connectez. C'est utile pour vérifier vos permissions actuelles et les détails de votre connexion.
État du serveur et variables
Pour afficher tous les indicateurs d'état du serveur :
SHOW STATUS;
Cette commande fournit une mine d'informations sur l'état actuel du serveur MySQL, y compris divers compteurs et statistiques.
Pour afficher toutes les variables de configuration du serveur :
SHOW VARIABLES;
Cette commande vous montre comment votre serveur MySQL est configuré, y compris les paramètres pour l'utilisation de la mémoire, les limites de connexion et bien d'autres paramètres.
Ces deux commandes produiront une sortie étendue. Vous pouvez la faire défiler dans le terminal, ou vous pouvez filtrer pour obtenir des informations spécifiques. Par exemple, pour voir les variables liées au pool de tampons (buffer pool) :
SHOW VARIABLES LIKE '%buffer%';
Ces commandes fournissent des informations détaillées sur la configuration et l'état actuel de votre serveur MySQL. Comprendre ces métadonnées peut être crucial pour optimiser les performances, résoudre les problèmes et garantir que votre serveur est correctement configuré pour vos besoins.
Par exemple, vous pourriez utiliser SHOW STATUS pour vérifier le nombre de requêtes qui ont été exécutées :
SHOW STATUS LIKE 'Questions';
Cela pourrait vous donner une sortie comme :
MariaDB [mysql]> SHOW STATUS LIKE 'Questions';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Questions | 15 |
+---------------+-------+
1 row in set (0.001 sec)
Cela vous indique combien d'instructions ont été exécutées par le serveur depuis son démarrage.
De même, vous pourriez utiliser SHOW VARIABLES pour vérifier des paramètres de configuration importants comme la taille maximale autorisée des paquets :
SHOW VARIABLES LIKE 'max_allowed_packet';
Ce qui pourrait donner une sortie comme :
MariaDB [mysql]> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 16777216 |
+--------------------+----------+
1 row in set (0.001 sec)
Cela montre la taille maximale d'un paquet ou de toute chaîne générée/intermédiaire, ce qui peut être important lorsque vous travaillez avec de grandes quantités de données.
Comprendre comment récupérer et interpréter ces métadonnées est une compétence précieuse pour tout administrateur de base de données ou développeur. Cela vous permet d'obtenir des informations sur le comportement et les performances de votre système de base de données, ce qui peut être crucial pour l'optimisation et le dépannage.
Résumé
Dans ce laboratoire, nous avons couvert les aspects fondamentaux de la gestion de bases de données dans MySQL :
- Création de bases de données en utilisant à la fois le client MySQL et l'outil mysqladmin
- Affichage des bases de données existantes et compréhension de leur utilité
- Compréhension de la sensibilité à la casse des noms de bases de données dans MySQL
- Suppression sécurisée de bases de données et importance de la prudence lors de cette opération
- Sélection et basculement entre les bases de données
- Récupération de métadonnées importantes concernant le serveur MySQL et les bases de données
Ces compétences constituent la base du travail avec les bases de données MySQL. Au fur et à mesure de votre progression dans votre parcours avec les bases de données, vous vous appuierez sur ces bases pour effectuer des opérations et des tâches de gestion de bases de données plus complexes.



