Article

Fondamentaux Système : Exploiter son serveur Linux #5 – Introduction à MySQL

5–7 minutes

🎯 Ce guide présente les fondamentaux de MySQL et son rôle dans un environnement Linux. Nous y verrons le fonctionnement d’une base de données, son organisation en bases, tables et relations, ainsi que les principales commandes permettant de l’explorer et de l’administrer. Nous aborderons également les sauvegardes, la gestion des droits, la sécurité et les premiers outils de diagnostic.

MySQL est l’un des systèmes de gestion de bases de données relationnelles les plus utilisés. Robuste et performant, il constitue un composant courant des environnements Linux, notamment pour les sites web, les CMS et les applications métiers.

Comprendre son fonctionnement, savoir consulter une base, effectuer une sauvegarde et contrôler les accès fait partie des fondamentaux de l’exploitation d’un serveur Linux.

Qu’est-ce qu’une base de données MySQL ? #

MySQL est un SGBDR (Système de Gestion de Base de Données Relationnelle). Il permet de stocker, organiser et interroger des données structurées à l’aide du langage SQL.

Une base MySQL s’organise principalement autour de trois éléments :

  • Les bases de données : elles regroupent les tables d’une application ou d’un service ;
  • Les tables : elles structurent les données sous forme de lignes et de colonnes ;
  • Les requêtes SQL : elles permettent de consulter, ajouter, modifier ou supprimer des données.

MySQL est notamment utilisé par de nombreux environnements web et applications nécessitant un stockage structuré.

Comment fonctionne MySQL ? #

MySQL fonctionne selon un modèle client-serveur.

Le serveur MySQL stocke les données et exécute les requêtes qui lui sont transmises. Les clients peuvent être une application web, un script, un outil d’administration ou simplement le client en ligne de commande.

Les connexions réseau utilisent généralement le port TCP 3306.

MySQL s’appuie également sur différents moteurs de stockage. InnoDB est le moteur couramment utilisé et fournit notamment la gestion des transactions, des clés étrangères et des mécanismes de verrouillage adaptés aux applications modernes.

Se connecter à MySQL #

Depuis un serveur Linux, le client MySQL permet d’ouvrir une session directement depuis le terminal :

mysql -u root -p

Après authentification, le prompt mysql> permet d’exécuter des commandes SQL.

Explorer une base

Quelques commandes permettent rapidement de comprendre la structure d’une instance :

SHOW DATABASES;

Affiche les bases de données accessibles à l’utilisateur.

USE nom_de_la_base;

Sélectionne la base sur laquelle travailler.

SHOW TABLES;

Affiche les tables présentes dans la base sélectionnée.

DESCRIBE nom_table;

Affiche la structure d’une table : colonnes, types de données, clés et propriétés principales.

Ces commandes sont particulièrement utiles lors d’un diagnostic ou lorsqu’il faut retrouver rapidement où sont stockées certaines données.

Comprendre la structure des données #

Une table MySQL est composée de colonnes et de lignes.

Chaque colonne possède un type de données adapté à son contenu, par exemple :

  • INT pour les nombres entiers ;
  • VARCHAR pour les chaînes de caractères ;
  • TEXT pour du contenu plus long ;
  • DATE pour les dates.

Une table utilise généralement une clé primaire (PRIMARY KEY) afin d’identifier chaque enregistrement de manière unique.

Des clés étrangères (FOREIGN KEY) peuvent également être utilisées pour établir des relations entre plusieurs tables.

MySQL peut ainsi maintenir la cohérence des données grâce aux contraintes telles que PRIMARY KEY, UNIQUE et FOREIGN KEY. Avec le moteur InnoDB, les transactions permettent également de garantir les propriétés ACID nécessaires aux opérations critiques.

Sauvegarder une base MySQL #

La sauvegarde fait partie des opérations essentielles de l’exploitation d’un serveur de bases de données.

L’outil mysqldump permet d’exporter une base dans un fichier SQL :

mysqldump -u root -p nom_de_la_base > sauvegarde.sql

Le fichier obtenu contient les instructions nécessaires pour recréer les structures et les données de la base.

Restaurer une sauvegarde

La restauration peut être effectuée avec le client MySQL :

mysql -u root -p nom_de_la_base < sauvegarde.sql

Une sauvegarde ne doit pas être considérée comme fiable uniquement parce que le fichier a été créé correctement. Dans un environnement professionnel, les restaurations doivent être testées régulièrement.

Les sauvegardes doivent également être :

  • régulières ;
  • conservées sur un stockage distinct du serveur ;
  • protégées contre les suppressions ou modifications accidentelles ;
  • adaptées aux besoins de reprise d’activité.

Sécuriser les accès MySQL #

La sécurité d’une base ne repose pas uniquement sur son mot de passe.

Il est recommandé de :

  • créer un compte dédié pour chaque application ;
  • éviter d’utiliser root pour les connexions applicatives ;
  • limiter les accès réseau au strict nécessaire ;
  • utiliser des mots de passe robustes ;
  • activer le chiffrement TLS lorsque les connexions doivent transiter sur un réseau non fiable ;
  • contrôler régulièrement les journaux et les connexions.

Le principe à retenir est simple : une application ne doit disposer que des droits dont elle a réellement besoin.

Gérer les droits

Les privilèges peuvent être attribués avec GRANT :

GRANT SELECT, INSERT
ON base.table
TO 'user'@'localhost';

Ici, l’utilisateur peut lire et ajouter des données dans la table concernée, sans disposer automatiquement de tous les droits sur la base.

Sur les versions modernes de MySQL, les modifications effectuées avec GRANT sont prises en compte immédiatement. Il n’est donc généralement pas nécessaire d’utiliser FLUSH PRIVILEGES après un GRANT.

Surveiller et diagnostiquer MySQL #

MySQL fournit plusieurs commandes utiles pour examiner l’activité du serveur.

Voir les connexions et requêtes en cours

SHOW PROCESSLIST;

Cette commande permet notamment d’identifier les connexions actives et les requêtes actuellement exécutées.

Consulter les indicateurs du serveur

SHOW STATUS;

Cette commande fournit de nombreuses métriques internes permettant de suivre l’activité et le fonctionnement de l’instance.

Analyser une requête

Lorsqu’une requête semble lente, EXPLAIN permet d’examiner la manière dont MySQL prévoit de l’exécuter :

EXPLAIN SELECT ...

Cette analyse peut notamment permettre d’identifier un problème d’indexation ou un parcours de données trop important.

Pour une supervision plus complète, MySQL peut également être intégré à des solutions de monitoring telles que Prometheus, Grafana ou Zabbix.

MySQL dans un environnement professionnel #

Dans un environnement d’hébergement, MySQL peut notamment être utilisé par des CMS (système de gestion de contenu), des applications web ou des outils métiers.

Les performances d’une base dépendent de plusieurs facteurs :

  • les ressources CPU et RAM disponibles ;
  • les performances du stockage ;
  • la configuration de MySQL ;
  • la structure des tables et leurs index ;
  • les requêtes exécutées par les applications ;
  • le nombre de connexions simultanées.

Une base mal dimensionnée ou mal configurée peut provoquer des ralentissements, des verrous ou des erreurs applicatives. À l’inverse, une exploitation correctement configurée facilite la stabilité et le diagnostic des services qui en dépendent.

La sécurité réseau doit également être prise en compte : lorsque MySQL n’a pas besoin d’être accessible depuis l’extérieur, son exposition réseau doit être limitée et les flux autorisés uniquement depuis les systèmes nécessaires.

À retenir #

MySQL est un composant courant des environnements Linux et de nombreuses applications web.

Pour exploiter correctement une instance MySQL, il faut notamment savoir :

  • se connecter au serveur ;
  • identifier les bases et les tables ;
  • comprendre la structure des données ;
  • gérer les utilisateurs et leurs droits ;
  • sauvegarder et restaurer une base ;
  • surveiller les requêtes et l’activité du serveur ;
  • analyser les problèmes de performance.

Ces fondamentaux constituent la base d’une exploitation fiable et sécurisée d’un serveur MySQL.

Qu'avez vous pensé de cet article ?
Free Pro est la filiale entreprise du Groupe iliad et met l’expertise technologique du Groupe iliad au service des entreprises et des marchés publics

Grâce à des infrastructures souveraines et certifiées, Free Pro propose des solutions Cloud, IT, télécom et cybersécurité – appelées Solutions XPR – pour répondre de façon simple aux enjeux des environnements les plus exigeants.

Fidèle à l’ADN du Groupe iliad, Free Pro place l’humain au cœur de sa démarche, en garantissant un service de proximité partout en France et un partenariat de confiance avec chacun de ses clients. Une expertise reposant sur plus de 20 ans d’expérience, qui lui permet d’accompagner de grandes références telles que le Groupe Printemps, Lidl, Monin, le ministère de l’Intérieur ou encore Gaumont.