É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é.
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.
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
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
La chaîne de connexion est fausse ou malformée
set mysql_connection_stringdoit 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
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
L'utilisateur n'a pas de droits depuis cet hôte
Les droits MySQL sont par hôte. Un utilisateur créé en
user@localhostne peut pas se connecter depuis une autre machine, même avec le bon mot de passe. - 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 FixerPour ce type d'erreur, le Script Optimizer repère les motifs de requête à l'origine de ceci.