AI Core
Essentielsai-mysql

ai-mysql

Le moteur de base de données pour les scripts tiers. Remplace oxmysql, mysql-async et ghmattimysql.

ai-mysql connecte les scripts tiers à votre base de données. Il répond aux exports d’oxmysql et à son fichier @oxmysql/lib/MySQL.lua, ainsi qu’aux anciens noms de mysql-async et de ghmattimysql, donc les scripts écrits pour n’importe lequel d’entre eux tournent sans modification.

Les scripts ai-* ne passent pas par ai-mysql : chacun fait tourner en lui-même le moteur de base de données d’AI Core (@aicore-fivem/mysql), avec son propre petit pool de connexions. ai-mysql est le même moteur, partagé par tous les scripts tiers.

Ce qu’il fait

  • oxmysql pour les autres scripts. exports.oxmysql:query(...), MySQL.query.await(...) et tous les autres appels d’oxmysql fonctionnent.
  • Anciennes API. Les noms d’exports de mysql-async (mysql_fetch_all, mysql_execute...) et de ghmattimysql (execute, scalar...) répondent aussi.
  • Vérification de version. Les scripts qui lisent la version d’oxmysql voient 2.14.3, la version d’oxmysql que suit ai-mysql, donc ils prennent leur chemin de code moderne.
  • Avertissements pour les requêtes lentes et les résultats très volumineux dans la console du serveur, comme oxmysql.

Installation

La recipe txAdmin d’AI Core l’installe. À la main :

Le mettre en place

Placez le dossier dans resources/[ai]/ et ajoutez ensure ai-mysql à server.cfg avant ensure ai-core et avant tout script qui utilise la base de données.

Régler la connexion

Dans env.cfg, réglez la chaîne de connexion et autorisez ai-mysql (et chaque script ai-* qui utilise la base de données) à la lire :

env.cfg
set mysql_connection_string "mysql://user:password@localhost/ai_core?charset=utf8mb4"
add_convar_permission ai-mysql read mysql_connection_string
add_convar_permission ai-core read mysql_connection_string

Le env.cfg de la recipe contient déjà la ligne pour chaque script ai-* qui en a besoin.

Retirer oxmysql

N’installez pas oxmysql, mysql-async ou ghmattimysql à côté. Les scripts avec dependency 'oxmysql' dans leur manifeste démarrent sans problème : ai-mysql compte comme oxmysql.

Réglages du panneau

Aucun. ai-mysql se règle avec des convars, les mêmes que lit oxmysql, donc un server.cfg existant continue de fonctionner :

ConvarCe qu’il changeDéfaut
mysql_connection_stringOù se trouve la base de données : mysql://user:password@host:port/database?options ou la forme key=value; (server=...;database=...;userid=...;password=...).mysql://root@localhost
mysql_slow_query_warningLes requêtes plus lentes que ce nombre de millisecondes donnent un avertissement dans la console.200
mysql_resultset_warningLes résultats avec plus de lignes que ce nombre donnent un avertissement dans la console.1000
mysql_transaction_isolation_level1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE.2
ai_mysql_shared_pool_sizeConnexions qu’ai-mysql garde pour l’ensemble des scripts tiers.10
ai_mysql_pool_sizeConnexions que chaque script ai-* garde pour lui-même.5

Commandes

Aucune. La commande d’administration d’AI Core aicore_db [slow] affiche les statistiques de base de données de chaque ressource dans la console du serveur (voir ai-core).

Raccourcis clavier

Aucun.

Fonctionne avec d’autres scripts

  • Remplace oxmysql, mysql-async et ghmattimysql (provide). @oxmysql/lib/MySQL.lua pointe vers la copie d’ai-mysql.
  • Les scripts ox_lib, QBCore, Qbox et ESX qui utilisent oxmysql tournent dessus.

Limites connues

  • Le comportement suit oxmysql 2.14.3. Un script qui a besoin d’une fonctionnalité d’un oxmysql plus récent peut ne pas la trouver.

Sur cette page