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:
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_stringDie 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:
| Convar | Was sie ändert | Standard |
|---|---|---|
mysql_connection_string | Wo 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_warning | Abfragen, die langsamer als so viele Millisekunden sind, werden in der Konsole gemeldet. | 200 |
mysql_resultset_warning | Ergebnisse mit mehr Zeilen als dieser Zahl werden in der Konsole gemeldet. | 1000 |
mysql_transaction_isolation_level | 1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE. | 2 |
ai_mysql_shared_pool_size | Verbindungen, die ai-mysql für alle Drittanbieter-Skripte zusammen hält. | 10 |
ai_mysql_pool_size | Verbindungen, 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-asyncundghmattimysql(provide).@oxmysql/lib/MySQL.luawird 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.