AI Core
Grundlagenai-mysql

ai-mysql

Die Datenbank-Engine für Drittanbieter-Skripte. Ersetzt oxmysql, mysql-async und ghmattimysql.

ai-mysql verbindet Drittanbieter-Skripte mit deiner Datenbank. Es beantwortet die Exports von oxmysql und dessen Datei @oxmysql/lib/MySQL.lua, dazu die älteren Namen von mysql-async und ghmattimysql, sodass Skripte, die für eines davon geschrieben wurden, unverändert laufen.

ai-*-Skripte laufen nicht über ai-mysql: Jedes betreibt die Datenbank-Engine von AI Core (@aicore-fivem/mysql) in sich selbst, mit einem eigenen kleinen Verbindungspool. ai-mysql ist dieselbe Engine, geteilt von allen Drittanbieter-Skripten.

Was es macht

  • oxmysql für andere Skripte. exports.oxmysql:query(...), MySQL.query.await(...) und jeder andere oxmysql-Aufruf funktioniert.
  • Alte APIs. Die Export-Namen von mysql-async (mysql_fetch_all, mysql_execute...) und ghmattimysql (execute, scalar...) antworten ebenfalls.
  • Versionsprüfung. Skripte, die die Version von oxmysql lesen, sehen 2.14.3, die oxmysql-Version, der ai-mysql folgt, und nehmen so ihren modernen Codepfad.
  • Warnungen bei langsamen Abfragen und sehr großen Ergebnissen in der Serverkonsole, wie bei oxmysql.

Installation

Das txAdmin-Rezept von AI Core installiert es. Von Hand:

An seinen Platz legen

Lege den Ordner in resources/[ai]/ und füge ensure ai-mysql in der server.cfg vor ensure ai-core und vor jedem Skript ein, das die Datenbank nutzt.

Die Verbindung setzen

Setze in der env.cfg den Connection String und erlaube ai-mysql (und jedem ai-*-Skript, das die Datenbank nutzt), ihn zu lesen:

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

Die env.cfg des Rezepts enthält die Zeile bereits für jedes ai-*-Skript, das sie braucht.

oxmysql entfernen

Installiere oxmysql, mysql-async oder ghmattimysql nicht daneben. Skripte mit dependency 'oxmysql' in ihrem Manifest starten problemlos: ai-mysql gilt als oxmysql.

Panel-Einstellungen

Keine. ai-mysql wird über Convars eingestellt, dieselben, die oxmysql liest, sodass eine bestehende server.cfg weiter funktioniert:

ConvarWas sie ändertStandard
mysql_connection_stringWo die Datenbank liegt: mysql://user:password@host:port/database?options oder die Form key=value; (server=...;database=...;userid=...;password=...).mysql://root@localhost
mysql_slow_query_warningAbfragen, die langsamer als so viele Millisekunden sind, werden in der Konsole gemeldet.200
mysql_resultset_warningErgebnisse mit mehr Zeilen als dieser Zahl werden in der Konsole gemeldet.1000
mysql_transaction_isolation_level1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE.2
ai_mysql_shared_pool_sizeVerbindungen, die ai-mysql für alle Drittanbieter-Skripte zusammen hält.10
ai_mysql_pool_sizeVerbindungen, die jedes ai-*-Skript für sich selbst hält.5

Befehle

Keine. Der Admin-Befehl aicore_db [slow] von AI Core gibt Datenbankstatistiken jeder Ressource in der Serverkonsole aus (siehe ai-core).

Tastenbelegungen

Keine.

Zusammenspiel mit anderen Skripten

  • Ersetzt oxmysql, mysql-async und ghmattimysql (provide). @oxmysql/lib/MySQL.lua wird auf die Kopie von ai-mysql aufgelöst.
  • Skripte für ox_lib, QBCore, Qbox und ESX, die oxmysql nutzen, laufen darauf.

Bekannte Grenzen

  • Das Verhalten folgt oxmysql 2.14.3. Ein Skript, das eine Funktion eines neueren oxmysql braucht, findet sie eventuell nicht.

Auf dieser Seite