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:
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_stringEl 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:
| Convar | Qué cambia | Por defecto |
|---|---|---|
mysql_connection_string | Dó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_warning | Las consultas más lentas que estos milisegundos se avisan en la consola. | 200 |
mysql_resultset_warning | Los resultados con más filas que esto se avisan en la consola. | 1000 |
mysql_transaction_isolation_level | 1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE. | 2 |
ai_mysql_shared_pool_size | Conexiones que ai-mysql mantiene para todos los scripts de terceros juntos. | 10 |
ai_mysql_pool_size | Conexiones 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-asyncyghmattimysql(provide).@oxmysql/lib/MySQL.luaapunta 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.