doganddev
Accueil Blog Boutique

MySQL sur Windows Server

DOG&DEV · 25/01/2025

Firewall Testing MySQL
MySQL sur Windows Server

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)

  1. Télécharger le MySQL Installer ou le paquet MySQL Server (MSI) depuis dev.mysql.com ou mariadb.org pour MariaDB.
  2. Lancer l’installeur : choisir Server only ou Custom.
  3. Type de config : Development, Server only ou Dedicated selon l’usage.
  4. Root password : mot de passe fort pour l’utilisateur root.
  5. Service Windows : MySQL démarre comme service ; cocher Start at System Startup.
  6. Terminer l’installation.

Méthode 2 : ZIP (installation manuelle)

  1. Télécharger l’archive ZIP MySQL (ou MariaDB) pour Windows.
  2. Extraire dans C:\MySQL (ou autre chemin sans espaces).
  3. Créer un fichier my.ini à la racine du dossier (ou dans C:\ProgramData\MySQL\MySQL Server X.Y\) :
[mysqld]
basedir=C:/MySQL
datadir=C:/MySQL/data
port=3306
  1. 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é.)

  1. 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 -p ou mysql -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.

Commentaires (0)

Laisser un commentaire