Installer MySQL Server sur un serveur dédié prend quatre commandes. Ce qui compte, c'est ce qui suit : le mot de passe root, l'adresse bind, et un réglage InnoDB qui dimensionne le buffer pool sur la machine.
Points clés à retenir
- MySQL 8.4 est la première version LTS. Choisissez-la, pas une branche innovation, pour la production.
- Activez innodb_dedicated_server et MySQL dimensionne le buffer pool et le redo log à partir du matériel détecté.
- Le buffer pool par défaut est de 128 Mo. Sur une machine d'une taille quelconque, c'est la pire valeur par défaut à laisser en l'état.
- Ne laissez jamais MySQL Server lié à toutes les interfaces. Pointez-le vers l'IP principale ou vers localhost.
- Dans MySQL 8.4, innodb_dedicated_server ne fixe plus innodb_flush_method. C'était le cas en 8.0.
Pourquoi choisir un serveur dédié pour MySQL
Une base de données est la charge la moins tolérante aux voisins bruyants. La latence des requêtes suit directement la contention du disque et de la mémoire, donc une machine partagée donne des résultats que vous ne pouvez pas reproduire.
Elle débloque aussi la configuration InnoDB automatique ci-dessous, qui n'a de sens que quand MySQL possède toutes les ressources.
Prérequis et configuration système requise
| Ressource | Minimum | Confortable |
|---|---|---|
| RAM | 8 Go | 32 Go ou plus |
| Stockage | NVMe, 2× le jeu de données | NVMe avec marge disponible |
| Cœurs | 4 | 8 ou plus |
| OS | CentOS Stream 9, Fedora, Windows Server 2022 | Idem |
Préparez la machine avant d'installer quoi que ce soit : un accès administrateur, un pare-feu que vous contrôlez, et une note claire de l'application qui parlera à la base. Une application par utilisateur, un utilisateur par application. Notre guide de la configuration du pare-feu couvre le port 3306, celui sur lequel écoute MySQL Server.
Décidez d'abord quelle version faire tourner. MySQL 8.4 est la version LTS, et un logiciel issu d'une branche d'innovation atteint sa fin de vie bien plus tôt.
Pour le dimensionnement, les configurateurs KS-2 et KS-4 montrent ce que coûte chaque palier de cœurs et de mémoire. Les pages KS-C et KS-GAME couvrent les options à plus de cœurs si vous attendez une forte concurrence.
Télécharger MySQL pour Linux et Windows
Oracle publie chaque version du logiciel sur dev.mysql.com/downloads. Deux téléchargements comptent, un par OS.
Pour Linux, téléchargez le paquet du dépôt MySQL community plutôt qu'un tarball, pour que les correctifs arrivent par le gestionnaire de paquets de l'OS. Pour Windows, téléchargez le MySQL Installer, qui regroupe MySQL Server et le workbench pour cet OS. Téléchargez les deux chez Oracle, jamais depuis un miroir : c'est un logiciel serveur qui a une portée de niveau root.
Téléchargez toujours en HTTPS depuis dev.mysql.com, confirmez la version, et vérifiez le checksum avant de décompresser. Un téléchargement altéré est une installation à laquelle vous ne pouvez pas vous fier, donc vérifiez avant d'installer.
Installer MySQL sur Linux (CentOS/Fedora)
Sur Fedora, MySQL Server se trouve dans le dépôt de base. Pour installer MySQL Server, installez le paquet et lancez mysqld :
sudo dnf install mysql-server
sudo systemctl enable --now mysqld
sudo systemctl status mysqldSur CentOS Stream, installez d'abord le dépôt Oracle. Cette étape vous donne la possibilité d'épingler une version, puis installe MySQL Server :
sudo dnf install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
sudo dnf install mysql-community-server
sudo systemctl start mysqldLe paquet Oracle écrit un mot de passe temporaire dans le log. Lisez-le, puis saisissez-le à la première connexion :
sudo grep 'temporary password' /var/log/mysqld.log
mysql -u root -pLe paquet Fedora démarre sans aucun mot de passe root, c'est pourquoi l'étape suivante n'est pas facultative.
Installer MySQL sur Windows Server
Pour installer MySQL Server sur Windows, lancez le MySQL Installer et choisissez Server only. La configuration demande ensuite un type de config, et c'est l'étape que la plupart des guides se trompent.
La liste d'options propose Development Computer, Server Computer et Dedicated Computer. Sur cet OS, choisissez Dedicated Computer : il permet à MySQL Server d'assumer la machine entière au lieu de réserver de la mémoire pour d'autres applications. Development Computer est le mauvais choix, quelle que soit votre habitude de développement.
Terminez les étapes restantes : mettez le port sur 3306, basculez le service Windows de MySQL Server en démarrage automatique, et donnez à root un mot de passe. Confirmez que le processus tourne dans la console Windows Services avant de poursuivre.
Configuration sécurisée initiale
Il est temps de configurer MySQL correctement. Exécutez le script qui sécurise MySQL juste après l'installation. Cette étape est interactive, et chaque réponse compte :
sudo mysql_secure_installationIl applique un mot de passe root, supprime les comptes anonymes, désactive la connexion distante pour ce compte et efface la base de test. Acceptez les quatre.
Puis configurez MySQL pour restreindre le réseau. Par défaut, il peut écouter sur toutes les interfaces, donc liez-le à une seule adresse dans /etc/my.cnf :
[mysqld]
bind-address = 10.0.0.5
port = 3306
skip-name-resolve = ONUtilisez l'IP principale pour l'accès applicatif, ou 127.0.0.1 si MySQL et l'application partagent la machine.
Donnez à chaque application son propre compte
Créez un utilisateur spécifique par application plutôt que de réutiliser root, et une base de données par application. Une application qui ne fait que lire ne doit pas pouvoir écrire, et une application compromise par son propre code ne doit pas atteindre les données d'une autre :
CREATE USER 'app'@'10.0.0.%' IDENTIFIED BY 'a-long-passphrase';
GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'app'@'10.0.0.%';Optimiser InnoDB pour un environnement dédié
C'est là que le matériel se paie lui-même. Un réglage dans [mysqld] fait l'essentiel du travail, et c'est la raison principale de configurer MySQL différemment ici :

[mysqld]
innodb_dedicated_server = ONLe nom est littéral : l'option existe pour un serveur que MySQL ne partage pas.
Quand elle est activée, MySQL détermine deux valeurs à partir du matériel détecté :
| Mémoire détectée | Taille du buffer pool |
|---|---|
| Moins de 1 Go | 128 Mo |
| 1 Go à 4 Go | mémoire × 0,5 |
| Plus de 4 Go | mémoire × 0,75 |
InnoDB déduit la capacité du redo log de la moitié du nombre de cœurs logiques, en Go, plafonnée à 16 Go. Sur un serveur à 16 cœurs, cela fait 8 Go. InnoDB stocke ce log à côté des données.
Deux détails sont spécifiques à la 8.4. innodb_redo_log_capacity remplace innodb_log_file_size et innodb_log_files_in_group, toutes deux dépréciées. Et innodb_flush_method n'est plus fixée automatiquement, comme c'était le cas en MySQL 8.0, donc définissez-la vous-même si votre stockage en a besoin.
N'appliquez cela que là où MySQL possède la machine. Oracle déconseille explicitement l'option quand MySQL partage des ressources avec d'autres logiciels.
Mettre en place des sauvegardes automatiques
Un dump plus une entrée cron couvrent la plupart des cas :
sudo mysqldump --all-databases --single-transaction \
--source-data=2 > /backup/all-$(date +%F).sqlStockez la sortie hors de la machine. Quand un dump prend des heures, utilisez plutôt mysqlbackup ou des instantanés du système de fichiers, et testez une restauration avant de vous fier à l'un ou l'autre.
Supervision et réglage des performances
Commencez par le taux de réussite du buffer pool InnoDB. En dessous de 99 % de façon soutenue, le pool est trop petit pour le working set :
SHOW STATUS LIKE 'Innodb_buffer_pool_read%';
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';Activez le slow query log pour repérer les requêtes qui valent d'être corrigées, et modifiez les index avant de modifier une moindre variable. Un index manquant coûte plus que n'importe quelle variable de cet article.
Résoudre les problèmes d'installation courants
mysqld ne démarre pas. Lisez /var/log/mysqld.log. Un buffer pool InnoDB plus grand que la mémoire disponible en est la cause habituelle, regardez donc là d'abord.
Access denied. Sur le paquet Oracle, le mot de passe temporaire est dans le log. Sur Fedora, connectez-vous par le socket local plutôt.
Connexions distantes refusées. Regardez bind-address, puis le pare-feu, puis le schéma d'hôte de l'utilisateur applicatif. Les trois doivent autoriser l'application avant qu'une session puisse s'établir.
Port 3306 déjà utilisé. Un autre processus mysqld tourne, souvent laissé par une tentative d'installation antérieure. Arrêtez-le, puis relancez mysqld.
Conclusion
L'installation tient en quatre commandes. La valeur est dans les trois étapes qui suivent l'installation : un compte root durci, MySQL lié à une seule adresse, et InnoDB dimensionnant son propre buffer pool à partir du matériel. Chaque application que vous connectez ensuite reçoit son propre utilisateur.
Les serveurs Kimsufi démarrent à 9,99 €/mois, et le configurateur KS-5 montre les paliers de mémoire qui comptent le plus pour une base de données.
FAQ
Quelles sont les spécifications matérielles minimales pour un serveur MySQL dédié ?
8 Go de RAM, 4 cœurs, et un stockage NVMe d'environ deux fois le jeu de données. La mémoire compte le plus, puisque le buffer pool InnoDB doit contenir le working set.
Comment sécuriser le compte root MySQL après l'installation ?
Exécutez mysql_secure_installation juste après l'installation, donnez à root un mot de passe long, désactivez la connexion distante pour ce compte, et créez un utilisateur par application pour tout le reste.
Puis-je installer MySQL à la fois sous Linux et Windows sur le même serveur dédié ?
Pas de manière raisonnable sur un seul OS. Le dual boot annule l'intérêt, et faire tourner les deux dans des VM supprime les ressources exclusives qui font fonctionner l'autoconfiguration InnoDB. Installez une seule version, appariée à votre pile applicative, et arrêtez-vous là.
Quelle est la meilleure configuration InnoDB pour des serveurs dédiés à fort trafic ?
Activez l'autoconfiguration InnoDB, confirmez la taille du buffer pool, puis réglez innodb_io_capacity sur votre NVMe. Une variable à la fois.
Comment mettre en place des sauvegardes automatisées pour MySQL sur un serveur dédié ?
Un mysqldump --single-transaction nocturne écrit dans un répertoire qui se réplique hors de la machine, plus un test de restauration mensuel. Le test, c'est la partie que les gens sautent.


