MariaDB est un fork open source de MySQL, développé par les créateurs originaux de MySQL pour garantir l’ouverture et la performance.
🤔 Pourquoi MariaDB ?
MariaDB c’est pour quoi :
- 🆓 100% gratuit - Même en entreprise, pas de licence payante
- 🔄 Remplace MySQL - Facile à migrer
- ⚡ Rapide - Optimisé pour les sites web
- 🛡️ Sécurisé - Chiffrement inclus
À utiliser pour :
- WordPress, Drupal (CMS classiques)
- Sites web avec PHP (LAMP)
- Remplacer MySQL quand on veut du gratuit
- Applications web “normales”
🚀 Installation
| 📌 Système | 🧠 Commande |
|---|---|
| 🐧 Ubuntu/Debian | sudo apt install mariadb-server mariadb-client |
| 🎩 CentOS/RHEL | sudo yum install mariadb-server mariadb |
| 🍎 macOS (Homebrew) | brew install mariadb |
| 🐳 Docker | docker run -d mariadb:11 |
| 🏢 Version officielle | mariadb.org/download |
⚙️ Configuration de base
| 📌 Action | 🧠 Commande |
|---|---|
| ▶️ Démarrer MariaDB | sudo systemctl start mariadb |
| 🔄 Activer au démarrage | sudo systemctl enable mariadb |
| 🔒 Configuration sécurisée | sudo mysql_secure_installation |
| 🔗 Se connecter comme root | sudo mysql -u root -p |
| 📊 Voir le statut | sudo systemctl status mariadb |
| 🚪 Quitter mysql | quit; (ou exit;) |
🗄️ Gestion des bases de données
| 📌 Action | 🧠 Commande |
|---|---|
| 📋 Lister les bases | SHOW DATABASES; |
| 🆕 Créer une base | CREATE DATABASE monapp; |
| 🗑️ Supprimer une base | DROP DATABASE monapp; |
| 🔗 Utiliser une base | USE monapp; |
| 📊 Base courante | SELECT DATABASE(); |
| 💾 Taille des bases | SELECT table_schema, SUM(data_length) FROM information_schema.tables GROUP BY table_schema; |
👥 Gestion des utilisateurs
| 📌 Action | 🧠 Commande |
|---|---|
| 📋 Lister les utilisateurs | SELECT User, Host FROM mysql.user; |
| 👤 Créer un utilisateur | CREATE USER 'jean'@'localhost' IDENTIFIED BY 'motdepasse'; |
| 🔐 Changer mot de passe | ALTER USER 'jean'@'localhost' IDENTIFIED BY 'nouveau_mdp'; |
| 🗑️ Supprimer un utilisateur | DROP USER 'jean'@'localhost'; |
| 👤 Utilisateur distant | CREATE USER 'jean'@'%' IDENTIFIED BY 'motdepasse'; |
| 🔄 Recharger privilèges | FLUSH PRIVILEGES; |
🔒 Gestion des droits
| 📌 Action | 🧠 Commande |
|---|---|
| 🔑 Tous droits sur une base | GRANT ALL PRIVILEGES ON monapp.* TO 'jean'@'localhost'; |
| 📖 Droits lecture seule | GRANT SELECT ON monapp.* TO 'jean'@'localhost'; |
| ✏️ Droits lecture/écriture | GRANT SELECT, INSERT, UPDATE, DELETE ON monapp.* TO 'jean'@'localhost'; |
| 👑 Droits administrateur | GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION; |
| 🚫 Retirer des droits | REVOKE ALL PRIVILEGES ON monapp.* FROM 'jean'@'localhost'; |
| 📋 Voir les droits | SHOW GRANTS FOR 'jean'@'localhost'; |
💾 Sauvegarde et restauration
| 📌 Action | 🧠 Commande |
|---|---|
| 💾 Sauvegarde une base | mysqldump -u root -p monapp > backup.sql |
| 💾 Sauvegarde toutes les bases | mysqldump -u root -p --all-databases > all_backup.sql |
| 💾 Sauvegarde avec structure | mysqldump -u root -p --no-data monapp > structure.sql |
| 💾 Sauvegarde données seules | mysqldump -u root -p --no-create-info monapp > data.sql |
| 📥 Restaurer une base | mysql -u root -p monapp < backup.sql |
| 📥 Restaurer depuis script | mysql -u root -p < all_backup.sql |
🔍 Monitoring et debug
| 📌 Action | 🧠 Commande |
|---|---|
| 📈 Voir les processus | SHOW PROCESSLIST; |
| 💾 Variables système | SHOW VARIABLES; |
| 📊 Statut serveur | SHOW STATUS; |
| 🔧 Tuer une requête | KILL QUERY process_id; |
| 📊 Taille des bases | SELECT table_schema, ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) AS 'DB Size in MB' FROM information_schema.tables GROUP BY table_schema; |
| ⚡ Voir la version | SELECT VERSION(); |