AI Core
Essenciaisai-mysql

ai-mysql

O motor de banco de dados para scripts de terceiros. Substitui o oxmysql, o mysql-async e o ghmattimysql.

O ai-mysql conecta scripts de terceiros ao seu banco de dados. Ele responde aos exports do oxmysql e ao arquivo @oxmysql/lib/MySQL.lua dele, mais os nomes antigos do mysql-async e do ghmattimysql, então scripts escritos para qualquer um deles rodam sem alterações.

Os scripts ai-* não passam pelo ai-mysql: cada um roda o motor de banco de dados do AI Core (@aicore-fivem/mysql) dentro de si, com seu próprio pequeno pool de conexões. O ai-mysql é o mesmo motor, compartilhado por todos os scripts de terceiros.

O que ele faz

  • oxmysql para outros scripts. exports.oxmysql:query(...), MySQL.query.await(...) e toda outra chamada do oxmysql funcionam.
  • APIs antigas. Os nomes de exports do mysql-async (mysql_fetch_all, mysql_execute...) e do ghmattimysql (execute, scalar...) também respondem.
  • Verificação de versão. Scripts que leem a versão do oxmysql veem 2.14.3, a versão do oxmysql que o ai-mysql segue, então eles usam o caminho de código moderno.
  • Avisos para consultas lentas e resultados muito grandes no console do servidor, como o oxmysql.

Instalação

A receita do txAdmin do AI Core o instala. À mão:

Coloque-o no lugar

Coloque a pasta em resources/[ai]/ e adicione ensure ai-mysql ao server.cfg antes de ensure ai-core e antes de qualquer script que use o banco de dados.

Defina a conexão

No env.cfg, defina a string de conexão e deixe o ai-mysql (e todo script ai-* que usa o banco de dados) lê-la:

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

O env.cfg da receita já tem a linha para todo script ai-* que precisa dela.

Remova o oxmysql

Não instale o oxmysql, o mysql-async ou o ghmattimysql junto com ele. Scripts com dependency 'oxmysql' no manifest iniciam normalmente: o ai-mysql conta como oxmysql.

Configurações do painel

Nenhuma. O ai-mysql é configurado com convars, os mesmos que o oxmysql lê, então um server.cfg existente continua funcionando:

ConvarO que mudaPadrão
mysql_connection_stringOnde fica o banco de dados: mysql://user:password@host:port/database?options ou a forma key=value; (server=...;database=...;userid=...;password=...).mysql://root@localhost
mysql_slow_query_warningConsultas mais lentas que esta quantidade de milissegundos geram aviso no console.200
mysql_resultset_warningResultados com mais linhas que isso geram aviso no console.1000
mysql_transaction_isolation_level1 REPEATABLE READ, 2 READ COMMITTED, 3 READ UNCOMMITTED, 4 SERIALIZABLE.2
ai_mysql_shared_pool_sizeConexões que o ai-mysql mantém para todos os scripts de terceiros juntos.10
ai_mysql_pool_sizeConexões que cada script ai-* mantém para si.5

Comandos

Nenhum. O comando de administração aicore_db [slow] do AI Core imprime as estatísticas do banco de dados de cada recurso no console do servidor (veja ai-core).

Teclas

Nenhum.

Funciona com outros scripts

  • Substitui o oxmysql, o mysql-async e o ghmattimysql (provide). @oxmysql/lib/MySQL.lua aponta para a cópia do ai-mysql.
  • Scripts de ox_lib, QBCore, Qbox e ESX que usam o oxmysql rodam nele.

Limites conhecidos

  • O comportamento segue o oxmysql 2.14.3. Um script que precisa de um recurso de um oxmysql mais novo pode não encontrá-lo.

Nesta página