Não existe o export fetchAll / execute no resource mysql-async
Um script foi escrito para um sistema de banco mais antigo do que o que você tem instalado.
Faça isto primeiro
Instale a versão que o script espera, ou peça uma atualizada para o vendedor.
O que significa
Um script está chamando a API de um resource de banco de dados que não é o que você tem instalado. O FiveM passou por três: mysql-async, depois ghmattimysql, agora oxmysql, e os scripts escritos para um chamam exports que os outros não têm.
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
O script quer mysql-async e você roda oxmysql
O oxmysql traz uma camada de compatibilidade, mas ela precisa ser ativada e não cobre tudo.
- 2
O resource antigo está instalado mas não iniciado
Está na pasta, não está no server.cfg.
- 3
Dois resources de banco de dados ao mesmo tempo
Os dois instalados, cada um configurado pela metade, e os scripts divididos entre eles.
- 4
Um export que nunca existiu
fetchSyncera do ghmattimysql;fetchAllera do mysql-async. Nenhum é a API nativa do oxmysql.
Como saber qual é o seu
print(GetResourceState('oxmysql'), GetResourceState('mysql-async'))E depois procure no script que falha qual das APIs ele usa:
grep -rn "MySQL\.\|exports\['mysql-async'\]\|exports.oxmysql" meu-script/
Onde olhar
As chamadas ao banco de dados do script, e qual resource de banco o server.cfg sobe.
Como consertar
Unifique no oxmysql e ligue a camada de compatibilidade para os scripts antigos:
# server.cfg set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4" ensure oxmysql # só se você ainda roda scripts escritos para as APIs antigas set oxmysql_slow_query_warning 200
Para um script que você pode editar, porte a chamada:
-- mysql-async
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @id', { ['@id'] = id }, cb)
-- oxmysql
MySQL.query('SELECT * FROM users WHERE identifier = ?', { id }, cb)Ainda travado no seu próprio código?
Esta página é o que esse erro costuma significar. Cole o seu console no Server Fixer e ele vai ordenar tudo o que estiver lá e te dizer o que fazer primeiro; e se você preferir não mexer, o ORBIE consegue consertar o script e te devolver o resource pronto para soltar.
bug_reportAbrir o Server FixerPara esse tipo de erro, o Script Optimizer detecta os padrões de consulta que causam isso.