← Retour au portail

Fiche 16 - MariaDB/MySQL — Installation et bases

Installer MariaDB sur Debian 13, créer des bases de données et des utilisateurs, maîtriser les requêtes SQL essentielles.

Intermédiaire — SISR 1ère année ⏱️ 25 min 📁 Administration système

🎯 Objectifs de la fiche

  1. Installation de MariaDB — apt install, sécurisation initiale
  2. Connexion et commandes de base — mysql -u root, show databases
  3. Créer bases, utilisateurs et droits — CREATE DATABASE, CREATE USER, GRANT
  4. Requêtes SQL essentielles — SELECT, INSERT, UPDATE, DELETE
  5. Sauvegarde et restauration — mysqldump, import depuis un fichier .sql

Prérequis

Debian 13 avec accès root ou sudo. Connaître les commandes Linux de base. Des notions de base de données sont un plus mais pas indispensables.

ℹ️ MariaDB est un fork communautaire de MySQL, compatible à 100%. Sur Debian, la commande mysql fonctionne pour les deux. MariaDB est le serveur par défaut dans les dépôts Debian.

1. Installation de MariaDB

sudo apt update && sudo apt install mariadb-server -y
sudo systemctl enable --now mariadb
sudo systemctl status mariadb

# Sécurisation initiale (recommandé)
sudo mysql_secure_installation
Question mysql_secure_installationRéponse recommandée
Switch to unix_socket authentication ?n (déjà configuré)
Change the root password ?Y — définir un mot de passe root fort
Remove anonymous users ?Y — supprimer les comptes anonymes
Disallow root login remotely ?Y — root uniquement en local
Remove test database ?Y — supprimer la base de test
Reload privilege tables now ?Y — appliquer les changements

2. Connexion à MariaDB

# Connexion en tant que root (authentification système)
sudo mysql

# Connexion avec mot de passe
mysql -u root -p

# Connexion à une base spécifique
mysql -u monuser -p mabase

# Quitter le client MySQL
EXIT;
-- ou
QUIT;

3. Commandes de base dans le client MySQL

-- Lister les bases de données
SHOW DATABASES;

-- Sélectionner une base
USE mabase;

-- Lister les tables
SHOW TABLES;

-- Voir la structure d'une table
DESCRIBE matable;

-- Voir la version
SELECT VERSION();

-- Voir l'utilisateur courant
SELECT USER();

4. Créer bases de données, utilisateurs et droits

-- Créer une base de données
CREATE DATABASE mabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Créer un utilisateur
CREATE USER 'monuser'@'localhost' IDENTIFIED BY 'MotDePasseFort!';

-- Donner tous les droits sur une base
GRANT ALL PRIVILEGES ON mabase.* TO 'monuser'@'localhost';

-- Droits en lecture seule
GRANT SELECT ON mabase.* TO 'lecteur'@'localhost';

-- Appliquer les changements de droits
FLUSH PRIVILEGES;

-- Voir les droits d'un utilisateur
SHOW GRANTS FOR 'monuser'@'localhost';

-- Supprimer un utilisateur
DROP USER 'monuser'@'localhost';

-- Supprimer une base
DROP DATABASE mabase;

5. Requêtes SQL essentielles

5.1 Créer une table

USE mabase;

CREATE TABLE utilisateurs (
    id       INT AUTO_INCREMENT PRIMARY KEY,
    nom      VARCHAR(100) NOT NULL,
    email    VARCHAR(150) UNIQUE NOT NULL,
    actif    BOOLEAN DEFAULT TRUE,
    cree_le  DATETIME DEFAULT NOW()
);

5.2 INSERT, SELECT, UPDATE, DELETE

-- Insérer des données
INSERT INTO utilisateurs (nom, email) VALUES ('Alice Dupont', 'alice@exemple.fr');
INSERT INTO utilisateurs (nom, email) VALUES ('Bob Martin', 'bob@exemple.fr');

-- Lire toutes les données
SELECT * FROM utilisateurs;

-- Lire avec filtre
SELECT nom, email FROM utilisateurs WHERE actif = TRUE;

-- Modifier des données
UPDATE utilisateurs SET actif = FALSE WHERE nom = 'Bob Martin';

-- Supprimer des données
DELETE FROM utilisateurs WHERE id = 2;

-- Compter les lignes
SELECT COUNT(*) FROM utilisateurs;

6. Sauvegarde et restauration

# Sauvegarder une base de données
mysqldump -u root -p mabase > /backup/mabase-$(date +%Y%m%d).sql

# Sauvegarder toutes les bases
mysqldump -u root -p --all-databases > /backup/all-databases.sql

# Restaurer une base
mysql -u root -p mabase < /backup/mabase-20260601.sql

# Créer la base avant restauration si elle n'existe pas
mysql -u root -p -e "CREATE DATABASE mabase;"
mysql -u root -p mabase < /backup/mabase-20260601.sql
# Automatiser la sauvegarde avec cron (tous les jours à 3h)
# Dans crontab -e :
0 3 * * * mysqldump -u root --single-transaction --all-databases | gzip > /backup/mysql-$(date +\%Y\%m\%d).sql.gz
Quelle commande liste toutes les bases de données MariaDB ?
  • LIST DATABASES;
  • SHOW DATABASES;
  • SELECT * FROM databases;
  • DISPLAY DATABASES;

✅ Réponse : SHOW DATABASES;

Quelle commande donne tous les droits sur une base à un utilisateur ?
  • SET PRIVILEGES ON mabase.* TO monuser;
  • ALLOW ALL ON mabase.* TO monuser;
  • GRANT ALL PRIVILEGES ON mabase.* TO monuser@localhost;
  • PERMIT ALL ON mabase TO monuser;

✅ Réponse : GRANT ALL PRIVILEGES ON mabase.* TO monuser@localhost;

Après avoir modifié les droits, quelle commande les applique ?
  • APPLY PRIVILEGES;
  • RELOAD GRANTS;
  • FLUSH PRIVILEGES;
  • UPDATE PRIVILEGES;

✅ Réponse : FLUSH PRIVILEGES;

Quelle commande sauvegarde une base de données dans un fichier SQL ?
  • mysqlbackup
  • mysqldump -u root -p mabase > fichier.sql
  • mysql --export mabase > fichier.sql
  • mariadb-backup mabase

✅ Réponse : mysqldump -u root -p mabase > fichier.sql

Quelle clause SQL filtre les résultats d'un SELECT ?
  • FILTER
  • HAVING
  • WHERE
  • LIMIT

✅ Réponse : WHERE

🎯 Passer l'évaluation de cette fiche