AI Core
Esencialesai-mysql

ai-mysql

El motor de base de datos para scripts de terceros. Sustituye a oxmysql, mysql-async y ghmattimysql.

ai-mysql conecta los scripts de terceros con tu base de datos. Responde a los exports de oxmysql y a su archivo @oxmysql/lib/MySQL.lua, además de a los nombres antiguos de mysql-async y ghmattimysql, así que los scripts escritos para cualquiera de ellos funcionan sin cambios.

Los scripts ai-* no pasan por ai-mysql: cada uno ejecuta dentro de sí el motor de base de datos de AI Core (@aicore-fivem/mysql), con su propio pool de conexiones pequeño. ai-mysql es el mismo motor, compartido por todos los scripts de terceros.

Qué hace

  • oxmysql para otros scripts. exports.oxmysql:query(...), MySQL.query.await(...) y cualquier otra llamada de oxmysql funcionan.
  • API antiguas. También responden los nombres de exports de mysql-async (mysql_fetch_all, mysql_execute...) y de ghmattimysql (execute, scalar...).
  • Comprobación de versión. Los scripts que leen la versión de oxmysql ven 2.14.3, la versión de oxmysql que sigue ai-mysql, así que toman su camino de código moderno.
  • Avisos de consultas lentas y de resultados muy grandes en la consola del servidor, como oxmysql.

Instalación

La receta de txAdmin de AI Core lo instala. A mano:

Colócalo

Pon la carpeta en resources/[ai]/ y añade ensure ai-mysql a server.cfg antes de ensure ai-core y antes de cualquier script que use la base de datos.

Configura la conexión

En env.cfg, configura la cadena de conexión y deja que ai-mysql (y cada script ai-* que use la base de datos) la lea:

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

El env.cfg de la receta ya tiene la línea para cada script ai-* que la necesita.

Quita oxmysql

No instales oxmysql, mysql-async ni ghmattimysql a su lado. Los scripts con dependency 'oxmysql' en su manifiesto arrancan bien: ai-mysql cuenta como oxmysql.

Ajustes del panel

Ninguno. ai-mysql se configura con convars, las mismas que lee oxmysql, así que un server.cfg existente sigue funcionando:

ConvarQué cambiaPor defecto
mysql_connection_stringDónde está la base de datos: mysql://user:password@host:port/database?options o la forma key=value; (server=...;database=...;userid=...;password=...).mysql://root@localhost
mysql_slow_query_warningLas consultas más lentas que estos milisegundos se avisan en la consola.200
mysql_resultset_warningLos resultados con más filas que esto se avisan en la consola.1000
mysql_transaction_isolation_level1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE.2
ai_mysql_shared_pool_sizeConexiones que ai-mysql mantiene para todos los scripts de terceros juntos.10
ai_mysql_pool_sizeConexiones que cada script ai-* mantiene para sí.5

Comandos

Ninguno. El comando de administración de AI Core aicore_db [slow] imprime en la consola del servidor las estadísticas de base de datos de cada recurso (mira ai-core).

Teclas

Ninguno.

Funciona con otros scripts

  • Sustituye a oxmysql, mysql-async y ghmattimysql (provide). @oxmysql/lib/MySQL.lua apunta a la copia de ai-mysql.
  • Los scripts de ox_lib, QBCore, Qbox y ESX que usan oxmysql funcionan sobre él.

Límites conocidos

  • El comportamiento sigue a oxmysql 2.14.3. Un script que necesite una función de un oxmysql más reciente puede no encontrarla.

En esta página