Aller au contenu principal

Créer et connecter une base de données

Base de données MySQL pour FiveM sur VPS RedHeberg

Ce guide détaille l'installation et la configuration d'une base de données MySQL/MariaDB pour votre serveur FiveM sur VPS RedHeberg. Nous utiliserons MariaDB et la ressource oxmysql pour une configuration optimale.

Installation de MariaDB

1. Mise à jour du système et installation

# Mise à jour des paquets
sudo apt update && sudo apt upgrade -y

# Installation de MariaDB Server
sudo apt install mariadb-server mariadb-client -y

# Démarrage et activation du service
sudo systemctl start mariadb
sudo systemctl enable mariadb

# Vérification du statut
sudo systemctl status mariadb

2. Sécurisation de l'installation

# Script de sécurisation automatique
sudo mysql_secure_installation
Configuration recommandée
  • Root password : Définissez un mot de passe fort
  • Remove anonymous users : Y (Oui)
  • Disallow root login remotely : Y (Oui)
  • Remove test database : Y (Oui)
  • Reload privilege tables : Y (Oui)

Configuration de la base de données FiveM

3. Création de la base de données et utilisateur

# Connexion à MariaDB en tant que root
sudo mysql -u root -p
-- Création de la base de données FiveM
CREATE DATABASE fivem_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Création de l'utilisateur dédié
CREATE USER 'fivem'@'localhost' IDENTIFIED BY 'VotreMotDePasseSecurise123!';

-- Attribution des permissions
GRANT ALL PRIVILEGES ON fivem_db.* TO 'fivem'@'localhost';

-- Application des modifications
FLUSH PRIVILEGES;

-- Vérification de la création
SHOW DATABASES;
SELECT User, Host FROM mysql.user WHERE User='fivem';

-- Sortie de MySQL
EXIT;

4. Test de la connexion utilisateur

# Test de connexion avec le nouvel utilisateur
mysql -u fivem -p fivem_db
-- Test simple dans la base FiveM
SHOW TABLES;
SELECT DATABASE();
EXIT;

Installation d'oxmysql pour FiveM

5. Téléchargement et installation d'oxmysql

# Navigation vers le dossier des ressources FiveM
cd /home/fivem/server-data/resources

# Création du dossier [required]
mkdir -p [required]
cd [required]

# Téléchargement de la dernière version d'oxmysql
wget https://github.com/overextended/oxmysql/releases/latest/download/oxmysql.zip

# Extraction
unzip oxmysql.zip -d oxmysql/
rm oxmysql.zip

# Permissions correctes
chown -R fivem:fivem /home/fivem/server-data/resources/[required]/oxmysql

Configuration FiveM

6. Configuration du server.cfg

# Édition du fichier de configuration serveur
nano /home/fivem/server-data/server.cfg

Ajoutez ces lignes dans votre server.cfg :

# === Configuration MySQL ===
# Démarrage d'oxmysql
ensure oxmysql

# Chaîne de connexion MySQL
set mysql_connection_string "mysql://fivem:VotreMotDePasseSecurise123!@localhost/fivem_db?charset=utf8mb4"

# Options MySQL avancées (optionnel)
set mysql_slow_query_warning 200
set mysql_debug true
Sécurité du mot de passe

Remplacez VotreMotDePasseSecurise123! par le mot de passe que vous avez défini lors de la création de l'utilisateur MySQL. Utilisez un mot de passe complexe avec majuscules, minuscules, chiffres et caractères spéciaux.

7. Optimisation de MariaDB pour FiveM

# Édition de la configuration MariaDB
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Ajoutez ces optimisations dans la section [mysqld] :

[mysqld]
# Optimisations FiveM
max_connections = 200
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M

# Encodage par défaut
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# Performances
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
# Redémarrage de MariaDB pour appliquer les changements
sudo systemctl restart mariadb

Tests et vérification

8. Vérification de la configuration

# Vérification des logs FiveM au démarrage
cd /home/fivem/server-data
tail -f server.log | grep -i mysql

9. Test de connexion depuis FiveM

Créez un script de test temporaire :

# Création d'un script de test
mkdir -p /home/fivem/server-data/resources/mysql-test
nano /home/fivem/server-data/resources/mysql-test/fxmanifest.lua
fx_version 'cerulean'
game 'gta5'

author 'Test MySQL'
description 'Test de connexion MySQL'
version '1.0.0'

server_script 'server.lua'
nano /home/fivem/server-data/resources/mysql-test/server.lua
CreateThread(function()
MySQL.ready(function()
print("^2[MySQL Test] Connexion à la base de données réussie !^0")

-- Test de création de table
MySQL.query([[
CREATE TABLE IF NOT EXISTS test_connection (
id INT AUTO_INCREMENT PRIMARY KEY,
message VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
]], {}, function(result)
print("^2[MySQL Test] Table de test créée avec succès^0")

-- Insertion d'un test
MySQL.insert('INSERT INTO test_connection (message) VALUES (?)', {
'Connexion MySQL fonctionnelle depuis FiveM'
}, function(insertId)
print("^2[MySQL Test] Données insérées avec l'ID: " .. insertId .. "^0")
end)
end)
end)
end)

Ajoutez temporairement à votre server.cfg :

ensure mysql-test
Monitoring des performances

Surveillez les performances de votre base de données avec la commande sudo mysqladmin -u root -p processlist status pour identifier d'éventuels goulots d'étranglement.

Votre serveur FiveM est maintenant configuré avec une base de données MySQL performante et sécurisée sur votre VPS RedHeberg !