circle-exclamation
Base en V1.0.1 Possible bug, merci de rejoindre le serveur Discord !

Erreurs SQL courantes & solutions

Erreur et solution connu lié au SQL pour la base GuerreRP By Ducratif.

Cette page est là pour t’aider à comprendre les erreurs SQL les plus fréquentes que tu peux rencontrer avec ta base FiveM (ESX / oxmysql), que ce soit :

  • en local (XAMPP / WAMP / localhost)

  • ou sur un hébergeur / VPS / dédié

Toujours avec une logique simple : → PROBLÈME → POURQUOI → COMMENT LE RÉPARER

Je vais séparer proprement : Localhost d’un côté, Hébergeur de l’autre.


COMMENT RECONNAÎTRE UNE ERREUR SQL DANS FIVEM ?


Avant de corriger, il faut être sûr que c’est bien SQL qui bloque.

En général tu vois dans la console serveur des lignes du style :

  • [oxmysql] [ERROR]

  • [MySQL] [ERROR]

  • SCRIPT ERROR: @... avec une mention SQL

  • ER_BAD_DB_ERROR, ER_ACCESS_DENIED_ERROR, etc.

Dès que tu vois “MySQL”, “oxmysql” ou un message qui parle de database / table / column / connection, c’est une piste SQL.

================================================== PARTIE A – ERREURS SQL EN LOCAL (LOCALHOST / XAMPP)

Ici on parle du cas : → tu as XAMPP ou WAMP sur ton PC, → tu testes ta base en local, → ta DB est sur localhost avec souvent l’utilisateur root.


A1. “Access denied for user 'root'@'localhost'”

SYMPTÔMES

  • Dans la console FiveM ou dans les logs oxmysql :

    • Access denied for user 'root'@'localhost' (using password: YES)

  • Le serveur démarre mais tout ce qui touche à la DB est mort (ESX, jobs, etc.)

POURQUOI

  • Mauvais mot de passe MySQL dans la config

  • Le compte root a un mdp que tu n’utilises pas

  • Ou tu as mis un mot de passe dans XAMPP mais pas dans la config oxmysql (ou l’inverse)

SOLUTION

  1. Ouvre phpMyAdmin (XAMPP)

  2. Teste ta connexion :

    • Serveur : localhost

    • Utilisateur : root

    • Mot de passe : (vide par défaut sur XAMPP, sauf si tu en as mis un)

  3. Récupère les bonnes infos (user + mdp).

  4. Ouvre la config de oxmysql / ESX (souvent dans server.cfg ou un fichier config.lua) et vérifie la ligne de connexion, par exemple :

    • host = localhost

    • user = root

    • password = (ce que tu as mis dans MySQL)

    • database = guerreRP (ou le nom que tu as donné)

  5. Redémarre le serveur et vérifie la console.


A2. “Unknown database 'guerreRP'”

SYMPTÔMES

  • Message type :

    • Unknown database 'guerreRP'

  • Le serveur démarre mais la moindre requête SQL plante.

POURQUOI

  • La base n’a jamais été créée

  • Tu n’as pas importé le fichier .sql

  • Tu as importé le SQL dans une base qui ne porte pas le même nom que celui configuré (guerreRP, fivem, etc.)

SOLUTION

  1. Va dans phpMyAdmin.

  2. Vérifie si une base avec le nom configuré existe (ex : guerreRP).

  3. Si non :

    • Crée une nouvelle base : “guerreRP”

    • Encodage : utf8mb4_general_ci

  4. Clique sur la base, onglet Importer.

  5. Importer le fichier .sql fourni avec la base.

  6. Dans la config oxmysql, vérifie que database = "guerreRP" (et pas un autre nom).


A3. Erreur à l’import du SQL (gros fichier, timeout, erreur de syntaxe)

SYMPTÔMES

  • phpMyAdmin affiche une erreur pendant l’import :

    • fichier trop gros

    • “MySQL server has gone away”

    • “Syntax error near …”

  • Certaines tables sont créées, d’autres non.

POURQUOI

  • Le fichier SQL est volumineux et dépasse la limite de phpMyAdmin

  • La connexion timeout pendant l’import

  • Tu as essayé d’importer deux fois le même fichier dans la même base (ce qui crée des messages du genre “table already exists”)

SOLUTION (simple)

  1. Si c’est un message “table existe déjà” :

    • Supprime la base concernée

    • Recrée-la vide

    • Réimporte le .sql une seule fois proprement.

  2. Si c’est un problème de taille/timeout :

    • Dans XAMPP, tu peux augmenter les limites dans php.ini (upload_max_filesize, post_max_size, max_execution_time).

    • Ou utiliser un autre client MySQL (HeidiSQL, DBeaver, etc.) pour importer.

  3. Toujours vérifier à la fin :

    • Que le nombre de tables dans la base est cohérent (pas 3 tables sur 150…)

    • Que tu n’as pas d’erreurs rouges en bas de page après l’import.


A4. Problèmes de caractères (�, accents bizarres, “Incorrect string value”)

SYMPTÔMES

  • Les accents s’affichent mal en jeu ou dans la DB (“é”, “è”, etc.)

  • Console MySQL : Incorrect string value

POURQUOI

  • Mauvais encodage de la base ou des tables

  • Pas en utf8mb4, ou collation différente

SOLUTION

  1. Lors de la création de la base :

    • Choisis utf8mb4_general_ci (ou utf8mb4_unicode_ci)

  2. Si la base existe déjà et que ça pose problème :

    • Vérifie dans phpMyAdmin la collation de la base

    • Si besoin, modifie les tables en utf8mb4_general_ci

  3. Vérifie aussi que le fichier .sql d’origine est bien en UTF-8.


A5. “Table doesn’t exist” en local

SYMPTÔMES

  • Console :

    • Table 'guerreRP.users' doesn't exist

    • ou n’importe quelle autre table manquante

  • Le script plante dès qu’il veut lire/écrire des données.

POURQUOI

  • SQL mal importé

  • Une erreur d’import a stoppé la création des tables

  • Tu as plusieurs bases (ex : test_fivem et guerreRP) et tu pointes vers la mauvaise

SOLUTION

  1. Dans phpMyAdmin, vérifie que les tables citées dans l’erreur existent.

  2. Si la table est absente :

    • Revois l’import du .sql (voir partie A3)

    • Ou récupère uniquement la partie SQL qui crée cette table (si tu en as un extrait)

  3. Vérifie que dans la config oxmysql, tu pointes bien vers la base où sont les bonnes tables.


PARTIE B – ERREURS SQL SUR UN HÉBERGEUR / VPS / DÉDIÉ

Ici on part du principe que :

  • Ton serveur FiveM tourne sur un VPS / dédié ou hébergeur

  • La DB peut être sur la même machine ou sur un autre serveur (mysql.hebergeur.com, IP, etc.)


B1. “Can’t connect to MySQL server on 'IP/host' (10061/111/ETIMEDOUT)”

SYMPTÔMES

  • Dans la console :

    • Can't connect to MySQL server on 'xxx.xxx.xxx.xxx'

    • ECONNREFUSED ou ETIMEDOUT

  • Aucun script qui touche à la base ne fonctionne.

POURQUOI

  • Mauvais host dans la config (tu as mis localhost alors que la DB est ailleurs)

  • Le port MySQL est fermé ou filtré (pare-feu, sécurité hébergeur)

  • Le serveur MySQL est down

SOLUTION

  1. Vérifie les paramètres fournis par ton hébergeur :

    • host (ex : mysql.hebergeur.com ou IP)

    • port (3306 ou autre)

    • user / mdp

    • nom de la base

  2. Dans la config oxmysql :

    • host = ce que t’a donné l’hébergeur, et pas forcément localhost

    • port = 3306 (ou celui indiqué)

  3. Pare-feu / panel :

    • Si DB sur une autre machine, vérifier que MySQL autorise l’IP de ton serveur FiveM

    • Si tu es sur un dédié : ouvrir le port 3306 (en interne ou via panel)

  4. Vérifie aussi que le service MySQL est bien démarré (systemctl, panel, etc.).


B2. Localhost utilisé au mauvais endroit (Docker, Pterodactyl, conteneurs)

SYMPTÔMES

  • Tu es chez un hébergeur (ou Pterodactyl / Docker)

  • Tu as mis localhost ou 127.0.0.1 dans la config DB

  • Erreur de connexion MySQL alors que tout marche en local.

POURQUOI

  • Dans un conteneur (Docker / Pterodactyl), localhost désigne le conteneur lui-même, pas l’hôte

  • La DB est sur l’hôte, sur une autre IP Docker, ou un autre service

SOLUTION

  1. Si la DB est sur la même machine mais en dehors du conteneur :

    • Utiliser l’IP locale de la machine (ex : 172.x.x.x ou IP LAN)

    • Ou le nom du service (si Docker compose / réseau docker nommé)

  2. Si la DB est sur un autre serveur :

    • Utiliser son IP ou host (ex : mysql.mondomaine.fr)

  3. Ne jamais supposer que localhost suffit :

    • toujours vérifier comment l’hébergeur t’indique d’accéder à la DB.


B3. “Access denied for user 'xxxxx'@'ip_du_serveur'”

SYMPTÔMES

  • Message similaire au A1, mais avec une IP différente :

    • Access denied for user 'user_fivem'@'xx.xx.xx.xx'

POURQUOI

  • Le user MySQL n’est pas autorisé depuis l’IP de ton serveur FiveM

  • Tu as créé le compte mais limité à localhost

  • Mot de passe faux (classique)

SOLUTION

  1. Vérifie user / mdp dans ton panel MySQL (ou phpMyAdmin de l’hébergeur).

  2. Vérifie les “Hosts autorisés” (parfois tu dois ajouter % ou l’IP exacte du serveur).

  3. Regénère un mot de passe propre si doute, et mets-le dans la config oxmysql.

  4. Teste la connexion avec un client MySQL depuis ta machine (HeidiSQL, DBeaver) en utilisant les mêmes paramètres que ton FiveM.


B4. “Table doesn’t exist” / “Unknown column …” sur hébergeur

SYMPTÔMES

  • Identiques à la partie A5, mais chez l’hébergeur

  • Parfois ça marchait en local, et ça casse une fois chez l’hébergeur

POURQUOI

  • Tu n’as pas importé le bon .sql sur l’hébergeur

  • Tu as importé une version ancienne ou incomplète

  • Certaines migrations SQL n’ont pas été rejouées

SOLUTION

  1. Compare le nombre de tables entre ta DB locale et celle de l’hébergeur.

  2. Si tu vois des manques :

    • Export depuis ta base locale uniquement les tables manquantes (ou la structure)

    • Import sur la DB hébergée

  3. Vérifie que le nom de la base et des tables est strictement le même partout (casse, pluriels, etc.).


B5. “Too many connections” / surcharge MySQL

SYMPTÔMES

  • Too many connections dans les logs

  • Lenteurs, déconnexions, timeout DB

POURQUOI

  • Trop de joueurs / requêtes pour la config MySQL par défaut

  • Scripts mal optimisés qui spamment la DB

  • Limitation dure de ton hébergeur (mutualisé / entrée de gamme)

SOLUTION

  1. Optimiser :

    • Vérifier les scripts qui font des requêtes dans des boucles

    • Mettre en cache certaines infos si possible

  2. Côté MySQL :

    • Augmenter max_connections (si tu as accès à la config)

    • Vérifier wait_timeout pour éviter des connexions zombies

  3. Si tu es en mutualisé ultra limité :

    • Envisager un VPS/dédié ou un service DB plus solide.


PARTIE C – ERREURS COURANTES LIÉES À OXMYSQL / ESX (COMMUNES)

Ces erreurs peuvent arriver autant en local que sur un hébergeur.


C1. “Unknown column 'xxx' in 'field list'”

SYMPTÔMES

  • Lors d’un insert/update, message :

    • Unknown column 'my_column' in 'field list'

POURQUOI

  • Le script a été mis à jour, mais pas ta DB

  • Une colonne attendue n’existe pas encore dans la table

SOLUTION

  1. Vérifie dans la doc / README du script s’il y a un SQL à ajouter.

  2. Ajoute manuellement la colonne manquante (ou réimporte le SQL de mise à jour).

  3. Évite de “bricoler” en supprimant des colonnes au hasard dans la DB.


C2. “Column count doesn't match value count”

SYMPTÔMES

  • Message du style :

    • Column count doesn't match value count at row 1

POURQUOI

  • Le script essaie d’insérer dans X colonnes, mais ta table en attend Y

  • Version du script ≠ version de la structure SQL

SOLUTION

  1. Vérifie que tu n’as pas modifié la structure de la table à la main.

  2. Compare la structure actuelle de la table avec le SQL d’origine du script.

  3. Remets la table comme dans le .sql prévu (ou adapte la requête si tu sais ce que tu fais).


C3. “Data too long for column”

SYMPTÔMES

  • Data too long for column 'xxx' at row 1

POURQUOI

  • Tu tentes d’insérer une valeur plus longue que la limitation (ex : VARCHAR(50) et tu envoies 200 caractères).

SOLUTION

  1. Si tu contrôles le code :

    • Raccourcir la valeur (nom, description, etc.)

  2. Sinon :

    • Modifier la colonne dans MySQL pour autoriser plus (ex : passer VARCHAR(50) à VARCHAR(255)), mais en comprenant ce que tu fais.


CHECKLIST GÉNÉRALE AVANT DE PANIQUER

Quand tu as une erreur SQL, pose-toi ces questions dans cet ordre :

  1. Est-ce que la connexion DB est ok ?

    • Bon host ? Bon user ? Bon mdp ? Bonne base ?

    • En local : root / localhost souvent

    • Hébergeur : host spécifique + user DB spécifique

  2. Est-ce que la base est bien importée ?

    • Toutes les tables ? Pas d’erreurs rouges à l’import ?

  3. Est-ce que le nom de la base dans la config est le bon ?

    • guerreRP vs fivem, vs autre chose

  4. Est-ce que l’erreur parle d’une table ou colonne manquante ?

    • Si oui : il manque un SQL à importer ou une migration à appliquer.

  5. Est-ce que le problème arrive partout, ou uniquement sur un script précis ?

    • Si c’est un seul script : aller voir en priorité son SQL et sa doc à lui.


Si vous avez rencontré d'autre problème ainsi que la solution, ou bien meme sans la solution, vous pouvez toujours venir nous donner ce que vous avez pour que nous l'ajoutons et ainsi aider un plus grand nombre de membre !.

Mis à jour

Ce contenu vous a-t-il été utile ?