Sommaire
Installer MariaDB sur Debian 13, créer des bases de données et des utilisateurs, maîtriser les requêtes SQL essentielles.
🎯 Objectifs de la fiche
- Installation de MariaDB — apt install, sécurisation initiale
- Connexion et commandes de base — mysql -u root, show databases
- Créer bases, utilisateurs et droits — CREATE DATABASE, CREATE USER, GRANT
- Requêtes SQL essentielles — SELECT, INSERT, UPDATE, DELETE
- 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_installation | Ré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
- ☐ MariaDB installé et actif (systemctl status mariadb)
- ☐ mysql_secure_installation exécuté
- ☐ Connexion root fonctionnelle (sudo mysql)
- ☐ Base de données créée
- ☐ Utilisateur créé avec les bons droits
- ☐ Table créée et données insérées
- ☐ SELECT, UPDATE, DELETE testés
- ☐ mysqldump de sauvegarde testé
Quelle commande liste toutes les bases de données MariaDB ?
✅ Réponse : SHOW DATABASES;
Quelle commande donne tous les droits sur une base à un utilisateur ?
✅ Réponse : GRANT ALL PRIVILEGES ON mabase.* TO monuser@localhost;
Après avoir modifié les droits, quelle commande les applique ?
✅ Réponse : FLUSH PRIVILEGES;
Quelle commande sauvegarde une base de données dans un fichier SQL ?
✅ Réponse : mysqldump -u root -p mabase > fichier.sql
Quelle clause SQL filtre les résultats d'un SELECT ?
✅ Réponse : WHERE
Suis ta progressionConnecte-toi pour marquer les ressources comme terminées et retrouver ton avancement.
Se connecter