Lier une base de données MySQL à son serveur FiveM
La plupart des frameworks RP (ESX, QBCore) et des scripts persistants ont besoin d'une base de données MySQL : argent, inventaires, propriétés, personnages. Voici comment créer votre base chez Rvhhost et la connecter à votre serveur FiveM.
Pourquoi une base MySQL ?
Une base MySQL stocke toutes les données persistantes de votre serveur RP. Sans elle, rien n'est sauvegardé entre deux redémarrages. Le connecteur le plus utilisé aujourd'hui est oxmysql.
Créer la base depuis le panel
- 1Dans votre espace client Rvhhost, ouvrez la section Bases de données de votre serveur.
- 2Cliquez sur Créer une base : un nom, un utilisateur et un mot de passe sont générés.
- 3Notez l'hôte, le port, le nom de la base, l'utilisateur et le mot de passe.
Configurer la connection string
Installez oxmysql dans votre dossier resources, puis ajoutez la chaîne de connexion dans votre server.cfg :
set mysql_connection_string "mysql://UTILISATEUR:MOTDEPASSE@HOTE:PORT/NOM_BASE?charset=utf8mb4"
Remplacez chaque champ par les identifiants fournis par Rvhhost. Ajoutez ensure oxmysql avant vos ressources qui utilisent la base (ESX, QBCore…).
Importer un fichier .sql
- 1Ouvrez phpMyAdmin depuis votre panel (ou connectez-vous avec un client MySQL).
- 2Sélectionnez votre base puis l'onglet Importer.
- 3Choisissez le fichier
.sqlde votre framework et validez.
Faites toujours une sauvegarde de votre base avant d'importer ou de modifier des tables en production.
Vérifier que la connexion fonctionne
Redémarrez le serveur et regardez la console au démarrage : oxmysql affiche un message de connexion réussie à la base, avec la version du serveur MySQL ou MariaDB. S'il affiche une erreur, elle indique presque toujours la cause exacte.
- ECONNREFUSED ou ETIMEDOUT : l'hôte ou le port est faux. Recopiez exactement ceux fournis, sans utiliser
localhost, car la base n'est pas forcément sur la même machine que le serveur de jeu. - ER_ACCESS_DENIED_ERROR : l'utilisateur ou le mot de passe ne correspond pas.
- ER_BAD_DB_ERROR : le nom de la base est mal orthographié.
- No such resource oxmysql : la ressource n'est pas dans le dossier
resources, ou la ligneensure oxmysqlmanque.
Mot de passe avec caractères spéciaux
Dans le format mysql://, certains caractères du mot de passe (@, :, /, #) cassent la chaîne de connexion. Utilisez alors le format clé-valeur, également accepté par oxmysql :
set mysql_connection_string "server=HOTE;port=PORT;database=NOM_BASE;userid=UTILISATEUR;password=MOTDEPASSE;charset=utf8mb4"Gardez charset=utf8mb4 dans les deux formats : sans lui, les accents et les émojis des pseudos ou des messages peuvent être enregistrés de travers.
L'ordre de chargement dans server.cfg
oxmysql doit démarrer avant tout ce qui lit ou écrit dans la base. Un ordre qui fonctionne pour la plupart des serveurs :
ensure oxmysql
ensure ox_lib
ensure es_extended # ou qb-core
ensure [esx] # puis les dossiers de ressources du framework
ensure [scripts]Si une ressource signale au démarrage qu'elle ne trouve pas MySQL ou exports.oxmysql, c'est presque toujours qu'elle se lance avant oxmysql.
Sauvegarder la base
La base contient tout l'historique de votre serveur RP : personnages, argent, véhicules, propriétés. Exportez-la avant chaque mise à jour de framework ou de script, et régulièrement en temps normal.
- 1Ouvrez phpMyAdmin et sélectionnez votre base.
- 2Onglet Exporter, méthode rapide, format SQL.
- 3Conservez le fichier
.sqlen dehors du serveur, sur votre PC ou un stockage en ligne.
Pour restaurer, importez ce fichier comme à l'étape précédente, dans une base vide ou après avoir supprimé les tables concernées.
Repérer les requêtes lentes
Un serveur qui ralentit aux heures de pointe a souvent un script qui interroge mal la base. oxmysql signale dans la console les requêtes plus lentes qu'un seuil, réglable dans server.cfg :
set mysql_slow_query_warning 150La valeur est en millisecondes. Les messages indiquent la ressource en cause : c'est elle qu'il faut corriger ou remplacer, pas la base.
Questions fréquentes
oxmysql ou ghmattimysql ?+
oxmysql est aujourd'hui le standard, plus performant et maintenu. ghmattimysql est plus ancien ; la plupart des scripts récents utilisent oxmysql.
phpMyAdmin est-il inclus ?+
Oui, vous accédez à phpMyAdmin depuis votre espace client pour gérer visuellement vos bases.
Pourquoi oxmysql affiche « Access denied » ?+
L'utilisateur ou le mot de passe de la chaîne de connexion ne correspond pas à celui de la base. Recopiez-les depuis votre espace client ; si le mot de passe contient des caractères spéciaux, utilisez le format clé-valeur décrit dans ce guide.
Puis-je utiliser la même base pour deux serveurs FiveM ?+
C'est déconseillé : les deux serveurs écriraient dans les mêmes tables et se marcheraient dessus. Créez une base par serveur, par exemple une pour la production et une pour les tests.