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
- Rendez-vous sur GitHub oxmysql
- Téléchargez la dernière version
- Extrayez le dossier
oxmysqldans votre dossierresources
É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 2 : Configuration de la base de données
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
- Démarrez votre serveur FiveM
- Vérifiez dans la console que oxmysql se charge sans erreur
- 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.awaitavec 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 !