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 :
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_stringLe 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 :
| Convar | Ce qu’il change | Défaut |
|---|---|---|
mysql_connection_string | Où 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_warning | Les requêtes plus lentes que ce nombre de millisecondes donnent un avertissement dans la console. | 200 |
mysql_resultset_warning | Les résultats avec plus de lignes que ce nombre donnent un avertissement dans la console. | 1000 |
mysql_transaction_isolation_level | 1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE. | 2 |
ai_mysql_shared_pool_size | Connexions qu’ai-mysql garde pour l’ensemble des scripts tiers. | 10 |
ai_mysql_pool_size | Connexions 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-asyncetghmattimysql(provide).@oxmysql/lib/MySQL.luapointe 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.