Configurer un serveur de bases de données sécurisé sur Ubuntu est un fondement essentiel pour créer des applications évolutives et fiables. Que vous déployiez des applications web dynamiques ou gériez des charges de travail d’entreprise complexes, choisir la bonne solution de base de données est essentiel. MySQL et MariaDB sont deux des systèmes de bases de données open source les plus populaires, connus pour leurs performances, leur flexibilité et leur fiabilité.
Dans ce guide, nous vous guiderons pas à pas dans l’installation, la configuration et la sécurisation de MySQL et MariaDB sur un serveur Ubuntu. Nous comparerons également leurs fonctionnalités pour vous aider à déterminer la meilleure option pour votre cas d’usage. Grâce à cette approche pas à pas, vous serez en mesure de mettre en place un environnement de base de données sécurisé et robuste pour vos applications.
Articles précédents :
01. Introduction à Ubuntu Server – SysOSX: AI & Cloud
02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud
03. Maîtriser la ligne de commande Linux pour Ubuntu Server – SysOSX: AI & Cloud
05. Bases du réseau pour Ubuntu Server : guide complet – SysOSX: AI & Cloud
06. Installation et gestion des logiciels sur Ubuntu Server : guide complet – SysOSX: AI & Cloud
07.Application de correctifs et mise à jour d’Ubuntu Server : guide complet – SysOSX: AI & Cloud
09. Audit et journalisation du serveur Ubuntu
10. Outils de surveillance système pour Ubuntu Server : guide complet – SysOSX: AI & Cloud
11. Journalisation centralisée pour le serveur Ubuntu : un guide incontournable – SysOSX: AI & Cloud
12. Audit et conformité pour Ubuntu Server : meilleures pratiques – SysOSX: AI & Cloud
14. Héberger plusieurs sites web sur un seul serveur Ubuntu : conseils utiles – SysOSX: AI & Cloud
15. Gestion du stockage et des disques sur Ubuntu Server : guide simple – SysOSX: AI & Cloud
Prérequis
Avant de commencer, assurez-vous des éléments suivants :
- Ubuntu Server : Une instance d’Ubuntu en cours d’exécution (la version 20.04 ou ultérieure est recommandée).
- Accès administrateur : Vous aurez besoin de privilèges
sudopour installer et configurer le serveur de bases de données. - Connexion internet : Nécessaire pour télécharger les paquets et les mises à jour.
MySQL contre MariaDB : principales différences
Bien que MySQL et MariaDB partagent les mêmes racines, ils ont divergé ces dernières années pour offrir des fonctionnalités distinctes. Cette comparaison vous aidera à choisir le serveur de bases de données adapté à vos besoins :
| Fonctionnalité | MySQL | MariaDB |
|---|---|---|
| Licence | Double licence (GPL et propriétaire) | Open source (GPL) |
| Performances | Optimisé pour les charges de travail à dominante de lecture | Performances améliorées pour les charges de travail de lecture et d’écriture |
| Moteur de stockage par défaut | InnoDB | Aria (alternative à InnoDB) |
| Fonctionnalités | Fonctionnalités d’entreprise disponibles dans les versions payantes | De nombreuses fonctionnalités (par exemple, pool de threads, fonctions JSON) sont open source |
| Compatibilité | Largement utilisé et pris en charge par les principales plateformes | Compatible avec MySQL, mais peut ne pas prendre en charge certaines fonctionnalités propriétaires de MySQL |
| Réplication | Réplication traditionnelle | Réplication améliorée avec prise en charge de Galera Cluster |
| Soutien de la communauté | Grande communauté et options de support d’entreprise | Fort soutien de la communauté open source |
Recommandation:
- Choisissez MySQL si vous avez besoin de fonctionnalités de niveau entreprise et d’une compatibilité avec les outils propriétaires.
- Optez pour MariaDB si vous préférez un logiciel open source aux fonctionnalités et aux performances améliorées.
Installation de MySQL ou MariaDB
Étape 1 : Mettre à jour le dépôt de paquets
Mettez à jour votre système pour vous assurer de travailler avec les versions les plus récentes des paquets :
sudo apt update && sudo apt upgrade
Étape 2 : Installer MySQL ou MariaDB
Vous pouvez installer MySQL ou MariaDB selon votre préférence.
Installation de MySQL :
sudo apt install mysql-server
Installation de MariaDB :
sudo apt install mariadb-server
Étape 3 : Vérifier l’installation
Après l’installation, assurez-vous que le serveur de bases de données est en cours d’exécution :
Pour MySQL :
sudo systemctl status mysql
Pour MariaDB :
sudo systemctl status mariadb
Configuration du serveur de bases de données
Étape 1 : Configuration de base
Modifiez le fichier de configuration pour optimiser les performances et la sécurité.
Pour MySQL :
sudo nano /etc/mysql/my.cnf
Pour MariaDB :
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Paramètres clés à ajuster :
bind-address: Définissez-le sur0.0.0.0si vous souhaitez un accès à distance.max_connections: Augmentez cette valeur pour les applications à fort trafic.
Après avoir apporté les modifications, redémarrez le service :
sudo systemctl restart mysql # For MySQL
sudo systemctl restart mariadb # For MariaDB
Étape 2 : Tester le serveur de bases de données
Connectez-vous au serveur de bases de données pour vous assurer qu’il fonctionne :
mysql -u root -p
Sécurisation de votre serveur de bases de données
Étape 1 : Exécuter le script de sécurité
Utilisez le script de sécurité intégré pour durcir votre serveur de bases de données.
sudo mysql_secure_installation
Suivez les invites pour :
- Définir un mot de passe root robuste.
- Supprimer les utilisateurs anonymes.
- Désactiver la connexion root à distance.
- Supprimer les bases de données de test.
Étape 2 : Configurer les règles du pare-feu
Restreignez l’accès au serveur de bases de données avec ufw:
sudo ufw allow from <your-ip-address> to any port 3306
Remplacez <your-ip-address> par l’adresse IP qui nécessite l’accès.
Étape 3 : Activer SSL/TLS
Pour une sécurité renforcée, activez les connexions SSL/TLS. Consultez documentation MySQL ou documentation MariaDB pour les instructions de configuration.
(Exemple pour MySQL)
- Générez les certificats :
sudo mysql_ssl_rsa_setup --uid=mysql
- Activez dans la configuration :
[mysqld]
ssl-ca = /var/lib/mysql/ca.pem
ssl-cert = /var/lib/mysql/server-cert.pem
ssl-key = /var/lib/mysql/server-key.pem
Étape 4 : Installer Fail2Ban (facultatif)
sudo apt install fail2ban
Configurez les règles de jail pour MySQL/MariaDB dans /etc/fail2ban/jail.local.
Gestion de votre serveur de bases de données
Étape 1 : Créer une base de données
Créez une base de données pour votre application :
CREATE DATABASE my_application_db;
Étape 2 : Créer un utilisateur et accorder des privilèges
Créez un utilisateur et attribuez des privilèges :
CREATE USER 'app_user'@'%' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON my_application_db.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
Étape 3 : Surveiller les performances
# Analyze slow queries
sudo mysqldumpslow -s t /var/log/mysql/mysql-slow.log
# Use MySQLTuner
wget https://mysqltuner.pl -O mysqltuner.pl
perl mysqltuner.pl
Étape 4 : Sauvegarde et restauration
Des sauvegardes régulières sont essentielles pour la sécurité des données.
Sauvegarde :
mysqldump -u root -p my_application_db > my_application_db.sql
Restauration :
mysql -u root -p my_application_db < my_application_db.sql
Sauvegardes automatisées (tâche cron)
# Daily backup at 2 AM
0 2 * * * /usr/bin/mysqldump -u root -p PASSWORD app_db > /backups/app_db_$(date +\%F).sql
Conclusion
MySQL et MariaDB sont tous deux d’excellents choix pour mettre en place un serveur de bases de données sur Ubuntu. Alors que MySQL est connu pour ses fonctionnalités de niveau entreprise, MariaDB se distingue par son approche open source et ses améliorations de performances. En suivant ce guide, vous pourrez installer, configurer, sécuriser et gérer efficacement votre serveur de bases de données.
À venir:
Dans notre prochain guide, « Maîtriser LVM sur Ubuntu : un stockage flexible pour les serveurs de bases de données », vous apprendrez à :
- Créer et gérer des volumes logiques pour un stockage de base de données dynamique.
- Redimensionner les disques sans temps d’arrêt.
- Mettre en œuvre des instantanés pour des sauvegardes cohérentes.
Ne le manquez pas : suivez notre blog pour rester informé !