doganddev
Accueil Blog Boutique

Connexion d'un serveur FiveM à MySQL

DOG&DEV · 25/01/2025

Paquets Logiciels Patch Management MySQL
Connexion d'un serveur FiveM à MySQL

Connexion d'un serveur FiveM à MySQL

Les serveurs FiveM (et RedM) utilisent souvent MySQL ou MariaDB pour les frameworks (ESX, QBCore), les inventaires, les logs, etc. Les ressources courantes sont oxmysql (recommandé) et mysql-async. Ce guide décrit l’installation, la configuration dans server.cfg, les chaînes de connexion, le dépannage (ER_ACCESS_DENIED, ETIMEDOUT, = dans le mdp) et des bonnes pratiques.

Prérequis

  • Serveur FiveM (Windows ou Linux) avec accès aux fichiers (fivem-windows-vps)
  • MySQL ou MariaDB installé et accessible (mysql-windowsserver, ou MySQL sur Linux)
  • Base et utilisateur créés (CREATE DATABASE, CREATE USER, GRANT)

MySQL : préparer la base

CREATE DATABASE fivem_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fivem_user'@'%' IDENTIFIED BY 'MotDePasseFORT';
GRANT ALL ON fivem_db.* TO 'fivem_user'@'%';
FLUSH PRIVILEGES;
  • bind-address : si MySQL est sur une autre machine, bind-address=0.0.0.0 (ou l’IP du serveur FiveM) et pare-feu (port 3306). Pour le même VPS : 127.0.0.1 ou localhost.

oxmysql (recommandé)

Installation

  • Télécharger oxmysql depuis GitHub ou votre gestionnaire de ressources.
  • Placer dans resources/ et ajouter dans server.cfg :
ensure oxmysql

(Avant les ressources qui l’utilisent : frameworks, jobs, etc.)

Chaîne de connexion (set/convar)

Dans server.cfg :

set mysql_connection_string "mysql://fivem_user:MotDePasseFORT@localhost/fivem_db?charset=utf8mb4"

Format général :
mysql://USER:PASSWORD@HOST/DATABASE?options

  • PASSWORD : si le mot de passe contient =, @, #, %, il faut les encoder en URL :
    • =%3D
    • @%40
    • #%23
    • %%25

Ex. mot de passe P@ss=123 :
mysql://user:P%40ss%3D123@localhost/fivem_db

setr (convar partagée)

Pour que les ressources lisent la convar :

setr mysql:connection_string "mysql://fivem_user:MotDePasseFORT@127.0.0.1/fivem_db?charset=utf8mb4"

(Adapter set/setr et le nom de la convar selon la doc d’oxmysql et de votre framework.)

mysql-async (legacy)

Format type :

set mysql_connection_string "host=127.0.0.1;database=fivem_db;user=fivem_user;password=MotDePasseFORT;charset=utf8mb4"
  • Même règle pour les caractères spéciaux dans le mot de passe (selon la lib : échappement ou encodage).

Migration mysql-async → oxmysql : remplacer la ressource et la chaîne, adapter les appels dans les scripts (API oxmysql différente). Prévoir une fenêtre de test.

server.cfg : ordre

# Connexion BDD avant tout
set mysql_connection_string "mysql://fivem_user:MotDePasseFORT@localhost/fivem_db?charset=utf8mb4"

ensure oxmysql

# Puis framework (ESX, QBCore) et le reste
ensure es_extended
# ...

Dépannage

Erreur / symptôme Cause possible Correctif
ER_ACCESS_DENIED Mauvais user, mot de passe, host Vérifier CREATE USER, host '%' ou IP ; mot de passe sans typo ; encodage =%3D etc.
ETIMEDOUT / Connection refused MySQL arrêté, mauvais host/port, pare-feu systemctl status mysql ; host 127.0.0.1 ou IP réelle ; port 3306 ouvert entre FiveM et MySQL
Unknown database Base inexistante ou typo SHOW DATABASES; ; recréer la base si besoin
MySQL has gone away wait_timeout, max_allowed_packet Augmenter wait_timeout, max_allowed_packet dans my.cnf / my.ini
= ou @ dans le mdp Interprétés par l’URL Encoder : %3D, %40, etc.

Santé et performances

  • utf8mb4 : pour les emojis et tous les caractères.
  • Index : sur les colonnes utilisées dans les WHERE / JOIN.
  • Transactions : pour les opérations multiples cohérentes.
  • wait_timeout / max_allowed_packet : adapter si timeouts ou requêtes volumineuses.

Bonnes pratiques

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