Configuration Intermédiaire 5 min de lecture

Comment lier sa base de donnée à son serveur FiveM

Guide complet pour configurer la connexion MySQL avec oxmysql pour votre serveur FiveM. Apprenez à connecter votre base de données étape par étape.

Comment lier sa base de donnée à son serveur FiveM

Support Technique

Besoin d'aide ? Notre équipe est disponible 24/7 pour vous assister.

Comment lier son SQL à son serveur FiveM

La connexion d’une base de données MySQL à votre serveur FiveM est une étape cruciale pour la plupart des scripts et ressources. Ce guide vous explique comment configurer correctement cette connexion.

Prérequis

Avant de commencer, assurez-vous d’avoir :

  • ✅ Un serveur FiveM fonctionnel
  • ✅ Une base de données MySQL (fournie par votre hébergeur, ici HebergTonServ)
  • ✅ Les informations de connexion à votre base de données
  • ✅ Accès aux fichiers de votre serveur (FTP/SFTP)

Étape 1 : Choisir votre connecteur MySQL

Il existe plusieurs ressources pour communiquer avec votre MySQL sur FiveM. Nous recommandons oxmysql qui est le plus moderne et performant.

Téléchargement d’oxmysql

  1. Rendez-vous sur GitHub oxmysql
  2. Téléchargez la dernière version
  3. Extrayez le dossier oxmysql dans votre dossier resources

Étape 2 : Création de la base de données

Pour crée votre base de donnée, je vous invite à aller sur votre panel (ici manage.hebergtonserv.com), ensuite il faut aller sur votre serveur regarder ici pour le screen

Étape 3 : Liaison de votre SQL à votre serveur FiveM

Informations nécessaires

Votre hébergeur vous fournit généralement ces informations :

Hôte (Host) : mysql-server.example.com
Port : 3306
Nom de la base : votre_base_de_donnees
Utilisateur : votre_utilisateur
Mot de passe : votre_mot_de_passe

Configuration dans server.cfg

Ajoutez ces lignes dans votre fichier server.cfg :

# Configuration MySQL avec oxmysql
set mysql_connection_string "mysql://utilisateur:motdepasse@host:port/nombase?charset=utf8mb4"

# Exemple concret :
set mysql_connection_string "mysql://fivem_user:[email protected]:3306/fivem_database?charset=utf8mb4"

# Démarrage d'oxmysql
ensure oxmysql

Étape 3 : Test de la connexion

Vérification dans la console

  1. Démarrez votre serveur FiveM
  2. Vérifiez dans la console que oxmysql se charge sans erreur
  3. Vous devriez voir : [oxmysql] Database connection established

Script de test simple

Créez un script de test pour vérifier la connexion :

-- testdb/client.lua
RegisterCommand('testdb', function()
    TriggerServerEvent('testdb:server')
end)

-- testdb/server.lua
RegisterServerEvent('testdb:server')
AddEventHandler('testdb:server', function()
    local result = MySQL.query.await('SELECT 1 as test')
    if result then
        print('✅ Connexion MySQL réussie !')
    else
        print('❌ Erreur de connexion MySQL')
    end
end)

-- testdb/fxmanifest.lua
fx_version 'cerulean'
game 'gta5'

client_scripts {
    'client.lua'
}

server_scripts {
    '@oxmysql/lib/MySQL.lua',
    'server.lua'
}

Étape 4 : Utilisation dans vos scripts

Syntaxe oxmysql

-- Requête simple
MySQL.query('SELECT * FROM users WHERE identifier = ?', {identifier})

-- Requête avec callback
MySQL.query('SELECT * FROM users WHERE identifier = ?', {identifier}, function(result)
    if result[1] then
        print('Utilisateur trouvé : ' .. result[1].name)
    end
end)

-- Requête synchrone (await)
local result = MySQL.query.await('SELECT * FROM users WHERE identifier = ?', {identifier})

Exemples pratiques

Créer une table

MySQL.query([[
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        identifier VARCHAR(50) UNIQUE,
        name VARCHAR(100),
        money INT DEFAULT 5000,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )
]])

Insérer des données

MySQL.insert('INSERT INTO users (identifier, name, money) VALUES (?, ?, ?)', {
    identifier,
    playerName,
    5000
})

Mettre à jour des données

MySQL.update('UPDATE users SET money = ? WHERE identifier = ?', {
    newMoney,
    identifier
})

Étape 5 : Sécurité et bonnes pratiques

Sécurisation des données

  • ✅ Utilisez toujours des requêtes préparées avec ?
  • ✅ Validez les données côté serveur
  • ✅ Ne stockez jamais les mots de passe en clair
  • ❌ N’utilisez jamais de concaténation de chaînes dans les requêtes

Exemple sécurisé vs non sécurisé

-- ❌ DANGEREUX - Injection SQL possible
MySQL.query('SELECT * FROM users WHERE name = "' .. playerName .. '"')

-- ✅ SÉCURISÉ - Requête préparée
MySQL.query('SELECT * FROM users WHERE name = ?', {playerName})

Étape 6 : Dépannage des erreurs courantes

Erreur de connexion

Problème : [ERROR] Failed to connect to database

Solutions :

  • Vérifiez vos informations de connexion
  • Assurez-vous que le port MySQL est ouvert
  • Vérifiez que l’utilisateur a les permissions nécessaires

Erreur de syntaxe

Problème : [ERROR] You have an error in your SQL syntax

Solutions :

  • Vérifiez la syntaxe de votre requête SQL
  • Assurez-vous d’utiliser les bonnes guillemets
  • Testez votre requête dans phpMyAdmin

Performance lente

Solutions :

  • Ajoutez des index sur les colonnes fréquemment utilisées
  • Utilisez MySQL.query.await avec parcimonie
  • Optimisez vos requêtes SQL

Étape 7 : Migration depuis mysql-async

Si vous utilisez actuellement mysql-async, voici comment migrer :

Remplacement des fonctions

-- mysql-async
MySQL.Async.fetchAll('SELECT * FROM users', {}, function(result)
    -- traitement
end)

-- oxmysql
MySQL.query('SELECT * FROM users', {}, function(result)
    -- traitement
end)

Conclusion

La configuration d’une base de données MySQL avec votre serveur FiveM est maintenant terminée ! Vous pouvez désormais :

  • ✅ Stocker les données des joueurs
  • ✅ Créer des systèmes économiques
  • ✅ Développer des scripts avancés
  • ✅ Gérer les inventaires et véhicules

Ressources utiles


Besoin d’aide ? Notre équipe technique est disponible 24/7 pour vous accompagner dans la configuration de votre serveur FiveM !