MySQL sur Windows Server
DOG&DEV · 25/01/2025
MySQL sur Windows Server
MySQL (ou MariaDB) sur Windows Server est utile pour des applications Windows (FiveM + oxmysql/mysql-async, logiciels métier, etc.). Ce guide décrit l’installation (MSI ou ZIP), la configuration du service, des utilisateurs, du bind-address et du pare-feu (port 3306).
Prérequis
- Windows Server 2016/2019/2022 ou Windows 10/11
- Droits administrateur
- Connexion Internet pour le téléchargement
Installation
Méthode 1 : Installer MSI (recommandée)
- Télécharger le MySQL Installer ou le paquet MySQL Server (MSI) depuis dev.mysql.com ou mariadb.org pour MariaDB.
- Lancer l’installeur : choisir Server only ou Custom.
- Type de config : Development, Server only ou Dedicated selon l’usage.
- Root password : mot de passe fort pour l’utilisateur
root. - Service Windows : MySQL démarre comme service ; cocher Start at System Startup.
- Terminer l’installation.
Méthode 2 : ZIP (installation manuelle)
- Télécharger l’archive ZIP MySQL (ou MariaDB) pour Windows.
- Extraire dans
C:\MySQL(ou autre chemin sans espaces). - Créer un fichier
my.inià la racine du dossier (ou dansC:\ProgramData\MySQL\MySQL Server X.Y\) :
[mysqld]
basedir=C:/MySQL
datadir=C:/MySQL/data
port=3306
- Initialiser les données (une seule fois) :
cd C:\MySQL\bin
mysqld --initialize-insecure
(Pour générer un mot de passe root aléatoire : mysqld --initialize et lire le fichier de log indiqué.)
- Installer le service :
mysqld --install MySQL
net start MySQL
Configuration : bind-address
Par défaut, MySQL n’écoute souvent que sur 127.0.0.1. Pour accepter les connexions distantes (depuis un autre serveur, ex. un client FiveM sur le même VPS ou une autre machine) :
Éditez my.ini (emplacement type : C:\ProgramData\MySQL\MySQL Server 8.0\my.ini ou le chemin de votre installation) :
[mysqld]
bind-address = 0.0.0.0
Ou pour n’écouter que sur une IP précise : bind-address = 192.0.2.10. Redémarrer le service :
net stop MySQL
net start MySQL
Utilisateurs et droits
En ligne de commande (client MySQL) :
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
mysql -u root -p
Créer un utilisateur et une base pour une application (ex. FiveM) :
CREATE DATABASE fivem_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fivem_user'@'%' IDENTIFIED BY 'mot_de_passe_fort';
GRANT ALL PRIVILEGES ON fivem_db.* TO 'fivem_user'@'%';
FLUSH PRIVILEGES;
EXIT;
'%' autorise la connexion depuis toute IP ; pour plus de sécurité, remplacer par '192.0.2.0/255.255.255.0' ou une IP précise.
Pare-feu (port 3306)
Pour autoriser les connexions externes à MySQL, ouvrir le port 3306 (TCP) dans le pare-feu Windows :
PowerShell (admin) :
New-NetFirewallRule -DisplayName "MySQL" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow -Profile Any
Pour restreindre à une IP source :
New-NetFirewallRule -DisplayName "MySQL App Server" -Direction Inbound -Protocol TCP -LocalPort 3306 -Action Allow -RemoteAddress 192.0.2.20 -Profile Any
Penser aussi au pare-feu de l’hébergeur (security group, règles réseau) si le VPS est dans le cloud.
Vérification
- Depuis le serveur :
mysql -u root -poumysql -u fivem_user -p -h 127.0.0.1 fivem_db - Depuis une autre machine :
mysql -u fivem_user -p -h IP_du_serveur fivem_db(si bind-address et pare-feu le permettent)
Dépannage
| Symptôme | Cause possible | Correctif |
|---|---|---|
| « Can't connect to MySQL server » | bind-address 127.0.0.1, pare-feu, service arrêté | bind-address=0.0.0.0 ; ouvrir 3306 ; net start MySQL |
| « Access denied » | Mauvais user/host, mot de passe | Vérifier CREATE USER ... @'%' ou @'IP' ; FLUSH PRIVILEGES ; mot de passe |
| Service ne démarre pas | my.ini, chemins, port déjà utilisé | Vérifier basedir, datadir, port ; netstat -an | findstr 3306 |
Bonnes pratiques
- Utiliser un utilisateur dédié par application, avec des droits limités au besoin.
- Ne pas exposer 3306 sur Internet sans restriction par IP ou VPN.
- Sauvegardes régulières (
mysqldump) et mises à jour de MySQL. - Pour la connexion depuis FiveM : fivem-sql ; pour des outils d’admin web : phpmyadmin-debian (sur un serveur Linux avec accès à la BDD distante).
Ressources
Cet article s’inscrit dans notre série de guides hébergement et gaming. Pour un serveur sur-mesure, contact.