MySQL est l’un des systèmes de gestion de bases de données relationnelles (SGBDR) les plus utilisés de nos jours. Il s’agit d’une plateforme de base de données robuste qui permet de créer et de gérer des bases de données évolutives, principalement à l’aide d’un langage de requête structuré (SQL).

Le serveur MySQL est l’environnement dans lequel résident les bases de données – et où on y accède. En tant qu’administrateur du serveur, vous aurez souvent besoin de récupérer des détails sur cet environnement – en listant les bases de données qui vivent sur le serveur, en affichant les tables d’une base de données particulière, en visualisant les rôles et privilèges des utilisateurs, en accédant aux contraintes, etc.

Cet article vous expliquera les tenants et aboutissants de la façon de lister les bases de données MySQL via l’invite de commande.

Pré-requis pour lister les bases de données MySQL

Pour commencer, vous devez avoir le serveur MySQL en cours d’exécution sur votre machine locale. Si vous n’avez pas MySQL, il existe plusieurs façons de l’installer :

  • Installez WAMPServer, XAMPP, MAMP, ou toute autre pile de distribution de logiciels qui inclut MySQL.
  • Téléchargez et exécutez le programme d’installation de MySQL directement depuis leur site officiel, en suivant le processus d’installation pour configurer et installer le serveur MySQL et d’autres outils.

Pour exécuter commodément les commandes MySQL à l’aide de la ligne de commande, vous devez ajouter le chemin d’accès de l’exécutable MySQL à l’environnement de votre système. Si vous avez installé MySQL en utilisant l’option deux, cette étape n’est pas nécessaire, alors sentez-vous libre de passer la section suivante.

Ajouter le chemin d’accès à MySQL à l’environnement des variables de votre système

Cette section vous guide dans l’ajout du chemin de l’exécutable MySQL à l’environnement des variables de votre système si vous exécutez XAMPP ou WAMP sur un ordinateur Windows.

Tout d’abord, lancez votre explorateur de fichiers Windows et naviguez vers Ce PC. Cliquez sur le lecteur où vous avez installé le paquetage WAMP ou XAMPP (C :).

Si vous utilisez XAMPP, naviguez jusqu’à xampp > mysql > bin et copiez le chemin complet vers le dossier bin. Pour WAMP, naviguez dans {votre-version-wamp} > bin > mysql > {votre-version-mysql} > bin jusqu’à son chemin complet.

Le chemin complet du dossier bin.
Le chemin complet du dossier bin.

Cliquez sur le menu Démarrer et recherchez « path » Cliquez sur Modifier la variable d’environnement système.

Ensuite, cliquez sur Variables d’environnement sous Démarrage et récupération, sélectionnez la variable PATH et cliquez sur Modifier.

Ensuite, cliquez sur Nouveau et collez le chemin complet de votre exécutable MySQL (que vous avez copié précédemment).

Modification de la variable d'environnement.
Modification de la variable d’environnement.

Ensuite, enregistrez les modifications en cliquant sur OK.

Maintenant que le chemin d’accès a été ajouté, vous pouvez exécuter les commandes MySQL dans le terminal.

Se connecter à MySQL

Pour répertorier les bases de données MySQL, l’utilisateur doit être autorisé à accéder à toutes les bases de données, ou vous devez définir un privilège global SHOW DATABASES qui accorde l’accès à tous les utilisateurs.

Assurez-vous que votre serveur MySQL est en cours d’exécution avant de vous connecter via l’invite de commande :

mysql -u  -p

REMARQUE : remplacez   par votre nom d’utilisateur. Le nom d’utilisateur par défaut pour MySQL est root, et le mot de passe est vide (il n’y a pas de mot de passe par défaut).

Connexion à MySQL.
Connexion à MySQL.

Afficher les bases de données à l’intérieur du serveur MySQL

Maintenant que vous êtes connecté, vous pouvez lister les bases de données MySQL présentes dans le serveur en exécutant la commande SHOW DATABASES:

SHOW DATABASES;

En retour, vous obtenez toutes les bases de données présentes dans le stockage :

Une liste des bases de données présentes dans le stockage.
Une liste des bases de données présentes dans le stockage.

Sur les six bases de données retournées, information_schema et performance_schema sont les bases de données par défaut qui sont automatiquement générées lorsque vous installez MySQL.

La base de données information_schema est une base de données non modifiable qui stocke toutes les informations relatives aux bases de données et autres objets (vues, privilèges utilisateur, tables, contraintes, etc.) stockés dans le serveur MySQL.

Filtrage des résultats de la sortie de la base de données

Auparavant, vous retourniez toutes les bases de données du serveur MySQL avec SHOW DATABASES, mais vous devez souvent filtrer la sortie de la base de données, principalement lorsqu’il y a de nombreuses bases de données sur le serveur.

La clause LIKE filtre le résultat de SHOW DATABASE sur la base d’un motif spécifié. Voici la syntaxe générale :

SHOW DATABASES LIKE '';

Il doit s’agir d’une chaîne de caractères représentant le motif que vous souhaitez faire correspondre. La chaîne doit se terminer par le symbole de pourcentage, %, qui désigne un ou plusieurs caractères.

Par exemple, si vous souhaitez afficher uniquement les bases de données dont le nom commence par la lettre w, vous pouvez le faire en exécutant la commande suivante :

SHOW DATABASES LIKE 'w%';

Voici le résultat filtré :

La réponse filtrée de la base de données lors de l'utilisation de w%.
La réponse filtrée de la base de données lors de l’utilisation de w%.

Utilisation du schéma d’information pour interroger les métadonnées de la table

Plus tôt, vous avez vu comment la base de données information_schema stocke toutes les informations relatives aux bases de données, tables et autres objets dans l’environnement du serveur MySQL.

La base de données information_schema utilise la table schemata pour stocker les informations relatives à toutes les bases de données. Pour le filtrage des bases de données, vous pouvez effectuer une recherche complexe pour interroger la table schema pour des bases de données spécifiques.

Par exemple, si vous voulez des bases de données dont les noms commencent par « samp » ou « word », vous pouvez combiner plusieurs autres clauses pour faire une requête complexe :

SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE 'samp%' OR schema_name LIKE 'word%';

Voici le résultat :

Les résultats de la requête complexe.
Les résultats de la requête complexe.

En outre, vous disposez de la table tables de la base de données information_schema, qui contient des informations sur toutes les tables. De même, vous pouvez effectuer une requête pour récupérer uniquement les tables qui correspondent à un modèle spécifié.

Par exemple, la requête suivante renvoie les informations de schéma des seules tables WordPress – uniquement les tables dont le nom commence par « wp_ » :

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Voici le résultat :

Les résultats des informations du schéma des seules tables WordPress.
Les résultats des informations du schéma des seules tables WordPress.

Les autres tables trouvées dans information_schema comprennent columns, constraints, table_constraints, check_constraints, et referential_constraints.

Problèmes courants et meilleures pratiques

L’une des causes les plus courantes d’erreurs lors de l’exécution de SQL est l’absence de point-virgule à la fin des instructions.

Une autre est l’utilisation d’une syntaxe SQL invalide ou d’un nom de table/colonne mal orthographié. Pour éviter cela, vérifiez le nom de la table ou de la colonne pour vous assurer qu’il est correctement orthographié. Veillez également à vérifier votre syntaxe.

Voici d’autres bonnes pratiques à garder à l’esprit.

Utilisez les majuscules pour les mots-clés SQL

Lorsque vous écrivez du code SQL, utilisez toujours des majuscules pour les mots-clés SQL et des minuscules pour les noms de table et de colonne. Cela rend votre code plus lisible et moins sujet aux erreurs.

Ainsi, au lieu de ceci

select * from information_schema.tables where table_name like 'wp_%';

Faites ceci :

SELECT * FROM information_schema.tables WHERE table_name LIKE 'wp_%';

Évitez d’utiliser SELECT *

Évitez d’utiliser SELECT * dans vos requêtes SQL. Votre requête n’est pas claire car vous ne pouvez pas toujours savoir ce qu’elle va retourner. Précisez plutôt les colonnes que vous voulez sélectionner dans la table.

Ainsi, au lieu de ceci :

SELECT * EXCEPT(phone) FROM users.profile

Faites ceci :

SELECT name,
    dob,
    address,
    country,
    address,
FROM user.profile

Identez votre code en retrait

Enfin, un autre conseil pour faciliter la recherche d’erreurs est d’indenter votre code. Cela le rend plus lisible !

Gestionnaires de bases de données

Vous pouvez également choisir de gérer vos bases de données sans écrire de SQL en utilisant un gestionnaire de base de données. Celui-ci permet aux utilisateurs d’accéder aux fonctions de gestion des bases de données sans avoir à écrire de requêtes SQL. Ce logiciel se connecte à un serveur MySQL et fournit une interface utilisateur pour exposer les fonctions de la base de données. Une fois connectée, l’interface utilisateur affiche toutes les bases de données sur le serveur. L’aspect et la convivialité varient selon les outils de gestion, mais le processus est similaire.

Le gestionnaire de base de données de DevKinsta.
Le gestionnaire de base de données de DevKinsta.

Plusieurs outils sont disponibles, dont phpMyAdmin et Adminer, tous deux accessibles par DevKinsta. L’outil de gestion par défaut de DevKinsta est Adminer, car il est léger, facile et rapide, mais on peut accéder facilement à phpMyAdmin.

Résumé

En tant qu’administrateur de serveur, vous devez être en mesure de récupérer efficacement et précisément les détails concernant les bases de données de votre serveur MySQL. Les capacités de voir quelles bases de données se trouvent sur le serveur, d’afficher des tables spécifiques et les informations qu’elles contiennent, et d’accéder aux informations sur les rôles et privilèges des utilisateurs sont toutes des tâches cruciales. Heureusement, l’utilisation de SQL à partir de votre ligne de commande peut faire de tout cela un jeu d’enfant.

Lorsque la gestion de votre base de données doit aller au-delà de l’interrogation des tables, Kinsta peut vous aider. Apprenez-en plus sur nos options d’hébergement de bases de données évolutives dès aujourd’hui !

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.