Installer MySQL sur Debian permet de créer une infrastructure de base de données (DB) robuste et flexible, compatible avec un large éventail d'applications et de services. Ce SGBD est reconnu pour sa scalabilité, sa fiabilité et sa robustesse. Une fois installé, il améliore l'efficacité opérationnelle et les performances globales de votre infrastructure de données.
Cette solution est particulièrement avantageuse pour les administrateurs, analystes de bases de données et secteurs ayant besoin d'un système fiable pour gérer de grands volumes de données. En outre, les guides complets de MySQL et sa communauté active facilitent le dépannage et l'amélioration continue des opérations.
Dans ce guide, nous présentons la procédure complète d'installation et de configuration de MySQL sur Debian.
Les dépôts par défaut de Debian ne proposent pas le paquet du serveur MySQL. Pour l'installer sur un système Linux, suivez les instructions ci-dessous. Nous allons télécharger la version la plus récente de MySQL.
Récupérez le fichier de configuration du dépôt MySQL au format .deb
:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb
Remarque : pour vérifier la dernière version, consultez le site du dépôt MySQL.
Utilisez ensuite le fichier .deb
pour lancer l'installation avec dpkg
:
sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb
Répondez aux invites. Par exemple, sélectionnez MySQL Server & Cluster puis appuyez sur Entrée pour lancer la configuration.
Pour choisir une version (comme mysql-8.4-lts
), défilez vers le bas et validez avec OK :
Mettez à jour l'index des paquets pour prendre en compte les nouvelles infos MySQL :
sudo apt update
L'outil de gestion de paquets de Debian simplifie l'installation. Exécutez :
sudo apt install mysql-server -y
Une interface vous demandera de définir un mot de passe root. Choisissez un mot de passe sécurisé puis validez.
Pour vérifier la version installée :
mysql --version
Activez le lancement automatique de MySQL au démarrage :
sudo systemctl enable mysql
Démarrez le service :
sudo systemctl start mysql
Vérifiez son statut :
sudo systemctl status mysql
Avant d'ouvrir le port 3306
aux clients, consultez notre guide Créer un tunnel SSH pour MySQL afin d'apprendre à protéger l'accès via SSH plutôt que d'exposer directement MySQL sur Internet.
Le mot de passe root défini au départ protège l'accès à l'utilisateur root. MySQL inclut aussi des défauts peu sécurisés (comme des utilisateurs anonymes ou l'accès distant root).
Il est essentiel de renforcer la sécurité après l'installation. Pour cela, utilisez :
sudo mysql_secure_installation
Activez la validation des mots de passe (Y
puis Entrée).
Vous serez invité à configurer plusieurs options :
Définissez un mot de passe fort pour l’utilisateur root et assurez-vous qu’il est correct. Configurez également la politique de mot de passe du serveur de base de données. Par exemple, tapez 2
pour n’autoriser que les mots de passe complexes, puis appuyez sur Entrée. Si l’on vous demande si vous souhaitez modifier le mot de passe root, tapez N
pour le conserver, ou Y
pour le modifier.
Il est recommandé d’éliminer les utilisateurs anonymes : pour cela, tapez Y
puis appuyez sur Entrée.
Par mesure de sécurité, il est préférable de désactiver l’accès distant au compte root. Pour ce faire, tapez Y
puis appuyez sur Entrée.
La base de données de test utilisée pour les essais peut être supprimée afin de renforcer la sécurité. Tapez Y
et appuyez sur Entrée.
Enfin, actualisez les tables de privilèges pour appliquer immédiatement toutes les modifications. Appuyez sur Entrée.
Utilisez l'utilitaire client mysql
pour établir une connexion et accéder à la console du serveur de base de données.
Accédez maintenant à l'interface shell et exécutez des instructions générales sur le serveur de base de données. Saisissez le nom d'utilisateur root ainsi que le mot de passe défini lors de l'installation sécurisée :
sudo mysql -u root -p
Il est préférable de créer une base et un utilisateur distinct plutôt que d'utiliser root. Voici les commandes :
Commencez par créer une base. Par exemple, pour créer hostmandb
, utilisez :
CREATE DATABASE hostmandb;
Listez toutes les bases pour confirmer que hostmandb
a bien été créée :
SHOW DATABASES;
Créez un utilisateur et attribuez-lui un mot de passe fort. Dans cet exemple, nous utilisons Qwer@1234
pour l'utilisateur minhal
. Adaptez ces valeurs selon vos besoins :
CREATE USER 'minhal'@'localhost' IDENTIFIED BY 'Qwer@1234';
Donnez un accès complet à hostmandb
au nouvel utilisateur :
GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost';
Pour appliquer les modifications, rechargez les privilèges :
FLUSH PRIVILEGES;
Pour fermer l'interface MySQL :
EXIT;
Dans le but de tester l'accès à hostmandb
, connectez-vous à MySQL en tant que nouvel utilisateur, dans notre cas minhal
:
sudo mysql -u minhal -p
Vous accéderez à la console après avoir saisi le mot de passe de l'utilisateur minhal
lorsqu'on vous le demandera.
Pour vérifier, affichez toutes les bases et confirmez que hostmandb
est bien présente :
SHOW DATABASES;
Configurer le serveur pour permettre l’accessibilité à distance est nécessaire si un utilisateur doit accéder à MySQL depuis une machine externe. Suivez les étapes ci-dessous :
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address
par :bind-address = 0.0.0.0
sudo systemctl restart mysql
sudo mysql -u root -p
GRANT ALL PRIVILEGES ON hostmandb.* TO 'minhal'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Si votre pare-feu est activé, vous devez autoriser le trafic sur le port 3306
utilisé par MySQL. Configurez le pare-feu en suivant les étapes ci-dessous :
sudo ufw allow mysql
sudo ufw enable
sudo ufw reload
Maintenir des sauvegardes régulières est essentiel pour éviter toute perte de données. MySQL fournit l’utilitaire mysqldump
pour créer ces sauvegardes. Voici comment l’utiliser :
Cette commande utilise mysqldump
pour créer une sauvegarde de la base hostmandb
dans un fichier nommé hostmandb_backup.sql
:
sudo mysqldump -u root -p hostmandb> hostmandb_backup.sql
Pour sauvegarder l’ensemble des bases de données dans un fichier all_databases_backup.sql
avec les privilèges root, utilisez :
sudo mysqldump -u root -p --all-databases > all_databases_backup.sql
Pour restaurer hostmandb
à partir du fichier de sauvegarde :
sudo mysql -u root -p hostmandb < hostmandb_backup.sql
Selon la charge de travail et les ressources du serveur, vous pouvez ajuster certains paramètres pour garantir des performances optimales.
Le buffer pool InnoDB stocke les données et les index. En augmenter la taille peut améliorer significativement les performances. Pour cela, modifiez le fichier de configuration suivant :
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Ajoutez ou modifiez la ligne suivante :
innodb_buffer_pool_size = 1G
Adaptez la valeur en fonction de la mémoire disponible sur votre serveur.
La cache de requêtes enregistre les résultats des requêtes SELECT
. L'activer peut améliorer les performances lors de requêtes répétitives. Pour cela, ajoutez ou modifiez ces lignes dans le même fichier .cnf
:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
query_cache_type = 1
query_cache_size = 64M
Il est conseillé d'optimiser régulièrement la table customers
de la base hostmandb
pour récupérer de l'espace perdu et améliorer l'efficacité :
USE hostmandb;
OPTIMIZE TABLE customers;
Les performances des opérations MySQL peuvent être analysées à l'aide d'outils comme MySQL Workbench ou mysqltuner
. Pour installer mysqltuner
:
sudo apt install mysqltuner
Lancez ensuite l'outil pour obtenir des recommandations :
sudo mysqltuner
Configurer un environnement MySQL est essentiel aujourd'hui. En suivant ce guide, vous pourrez installer et connecter votre base de données en toute sécurité. Cela renforce la sécurité, améliore la maintenance à distance et préserve la confidentialité des données.
Cet article vous a fourni des instructions détaillées pour installer MySQL sur Debian. Il est recommandé de surveiller et d'optimiser régulièrement vos serveurs pour garantir des performances stables.
Hostman propose également des bases de données cloud préconfigurées et prêtes à l'emploi, y compris MySQL dans le cloud.