THE ORB
Démarrage du studio

Échec de la connexion à la base de données (oxmysql / mysql-async)

Votre serveur n'atteint pas sa base de données. Rien de ce qui enregistre ou charge ne fonctionnera tant que ce n'est pas réglé.

groupsRien ne s'enregistre ni ne se chargepersonVous pouvez le corriger

Faites d'abord ceci

Vérifiez que la base de données tourne et que la ligne de connexion dans server.cfg a le bon identifiant et le bon mot de passe.

bug_reportCollez plutôt toute votre console

Ce que ça veut dire

La couche base de données n'a pas pu joindre MySQL, ou l'a jointe et a été rejetée. Chaque requête de chaque ressource va échouer tant que ce n'est pas réglé : un mur d'erreurs de base sans rapport en dessous est attendu et ne vaut pas encore la peine d'être lu.

Le code d'erreur node indique quelle moitié a échoué :

ECONNREFUSED — hôte atteint, rien à l'écoute sur ce port

ETIMEDOUT — hôte jamais atteint (pare-feu, mauvaise IP)

ENOTFOUND / getaddrinfo — le nom d'hôte ne se résout pas

ER_ACCESS_DENIED_ERROR — MySQL atteint, mauvais utilisateur ou mot de passe

ER_BAD_DB_ERROR — connecté, mais cette base n'existe pas

Ce qui la provoque

Classé par fréquence : la cause la plus probable en premier.

  1. 1

    MySQL ne tourne pas

    Le plus courant sur une machine locale après un redémarrage, ou sur une machine neuve où le service n'a jamais été activé.

  2. 2

    La chaîne de connexion est fausse ou malformée

    set mysql_connection_string doit tenir sur une ligne, dans server.cfg, avant les ressources qui l'utilisent. Les deux formats marchent, mais celui à point-virgule ne pardonne pas les espaces :

    set mysql_connection_string "mysql://user:password@localhost/database?charset=utf8mb4"
  3. 3

    Un mot de passe avec des caractères spéciaux non échappés

    @, :, / et # dans un mot de passe cassent la forme URI. Encodez-les en pourcentage ou utilisez la forme clé/valeur.

  4. 4

    L'utilisateur n'a pas de droits depuis cet hôte

    Les droits MySQL sont par hôte. Un utilisateur créé en user@localhost ne peut pas se connecter depuis une autre machine, même avec le bon mot de passe.

  5. 5

    La base de données n'existe pas encore

    La connexion réussit et le USE échoue. Le SQL du framework n'a jamais été importé.

Comment savoir laquelle est la vôtre

Lisez le code, pas la phrase. Essayez ensuite de vous connecter avec les mêmes identifiants depuis la même machine :

mysql -h 127.0.0.1 -u votreutilisateur -p votrebase

Si cela échoue aussi, le problème est MySQL et pas FiveM. À noter : localhost et 127.0.0.1 ne sont pas interchangeables dans les droits MySQL.

Où regarder

server.cfg, la ligne set mysql_connection_string, et si oxmysql est ensure avant tout ce qui interroge la base.

Comment la corriger

# server.cfg — avant chaque ressource qui touche la base de données
set mysql_connection_string "mysql://fivem:pass@127.0.0.1/fivem?charset=utf8mb4"
ensure oxmysql

Accordez correctement les droits si l'utilisateur est distant :

CREATE USER 'fivem'@'%' IDENTIFIED BY 'pass';
GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'%';
FLUSH PRIVILEGES;

Toujours bloqué sur votre propre code ?

Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.

bug_reportOuvrir le Server Fixer

Pour ce type d'erreur, le Script Optimizer repère les motifs de requête à l'origine de ceci.

Les erreurs qui voyagent avec celle-ci