ai-mysql
Движок базы данных для сторонних скриптов. Заменяет oxmysql, mysql-async и ghmattimysql.
ai-mysql подключает сторонние скрипты к вашей базе данных. Он отвечает на экспорты oxmysql и его файл @oxmysql/lib/MySQL.lua, а также на старые имена mysql-async и ghmattimysql, поэтому скрипты, написанные для любого из них, работают без изменений.
Скрипты ai-* не ходят через ai-mysql: каждый запускает движок базы данных AI Core (@aicore-fivem/mysql) внутри себя, со своим небольшим пулом соединений. ai-mysql является тем же движком, общим для всех сторонних скриптов.
Что он делает
- oxmysql для других скриптов.
exports.oxmysql:query(...),MySQL.query.await(...)и любой другой вызов oxmysql работают. - Старые API. Имена экспортов mysql-async (
mysql_fetch_all,mysql_execute...) и ghmattimysql (execute,scalar...) тоже отвечают. - Проверка версии. Скрипты, которые читают версию oxmysql, видят 2.14.3, версию oxmysql, которой следует ai-mysql, поэтому они идут по своему современному пути кода.
- Предупреждения о медленных запросах и очень больших результатах в консоли сервера, как в oxmysql.
Установка
Его устанавливает рецепт AI Core для txAdmin. Вручную:
Положите его на место
Положите папку в resources/[ai]/ и добавьте ensure ai-mysql в server.cfg перед ensure ai-core и перед любым скриптом, который использует базу данных.
Задайте подключение
В env.cfg задайте строку подключения и разрешите ai-mysql (и каждому скрипту ai-*, который использует базу данных) её читать:
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В env.cfg из рецепта уже есть строка для каждого скрипта ai-*, которому она нужна.
Удалите oxmysql
Не устанавливайте рядом с ним oxmysql, mysql-async или ghmattimysql. Скрипты с dependency 'oxmysql' в манифесте запускаются нормально: ai-mysql считается oxmysql.
Настройки панели
Нет. ai-mysql настраивается convar’ами, теми же, что читает oxmysql, поэтому существующий server.cfg продолжает работать:
| Convar | Что меняет | По умолчанию |
|---|---|---|
mysql_connection_string | Где находится база данных: mysql://user:password@host:port/database?options или форма key=value; (server=...;database=...;userid=...;password=...). | mysql://root@localhost |
mysql_slow_query_warning | О запросах медленнее этого числа миллисекунд предупреждается в консоли. | 200 |
mysql_resultset_warning | О результатах с числом строк больше этого предупреждается в консоли. | 1000 |
mysql_transaction_isolation_level | 1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE. | 2 |
ai_mysql_shared_pool_size | Соединения, которые ai-mysql держит для всех сторонних скриптов вместе. | 10 |
ai_mysql_pool_size | Соединения, которые каждый скрипт ai-* держит для себя. | 5 |
Команды
Нет. Админ-команда AI Core aicore_db [slow] печатает статистику базы данных каждого ресурса в консоли сервера (см. ai-core).
Привязки клавиш
Нет.
Работа с другими скриптами
- Заменяет
oxmysql,mysql-asyncиghmattimysql(provide).@oxmysql/lib/MySQL.luaуказывает на копию ai-mysql. - Скрипты ox_lib, QBCore, Qbox и ESX, которые используют oxmysql, работают на нём.
Известные ограничения
- Поведение следует oxmysql 2.14.3. Скрипт, которому нужна функция более новой oxmysql, может её не найти.