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(); |