Falhou a conexão com o banco de dados (oxmysql / mysql-async)
O seu servidor não alcança o banco de dados. Nada que salve ou carregue vai funcionar até isso ser resolvido.
Faça isto primeiro
Confira se o banco está rodando e se a linha de conexão do server.cfg tem o usuário e a senha certos.
O que significa
A camada de banco de dados não conseguiu alcançar o MySQL, ou alcançou e foi rejeitada. Cada consulta de cada resource vai falhar até isso ser resolvido, então uma parede de erros de banco sem relação abaixo deste é esperada e ainda não vale a pena ler.
O código de erro do node diz qual metade falhou:
• ECONNREFUSED — chegou na máquina, nada escutando naquela porta
• ETIMEDOUT — não chegou na máquina de jeito nenhum (firewall, IP errado)
• ENOTFOUND / getaddrinfo — o nome da máquina não resolve
• ER_ACCESS_DENIED_ERROR — chegou no MySQL, usuário ou senha errados
• ER_BAD_DB_ERROR — conectou, mas aquele banco não existe
O que causa isso
Ordenado pela frequência com que é a resposta.
- 1
O MySQL não está rodando
O mais comum numa máquina local depois de reiniciar, ou numa máquina nova onde o serviço nunca foi habilitado.
- 2
A string de conexão está errada ou malformada
set mysql_connection_stringtem que ser uma única linha, no server.cfg, antes dos resources que a usam. Os dois formatos funcionam, mas o de ponto e vírgula não perdoa espaços:set mysql_connection_string "mysql://user:password@localhost/database?charset=utf8mb4"
- 3
Uma senha com caracteres especiais sem escapar
@,:,/e#dentro de uma senha quebram o formato de URI. Codifique em porcentagem ou use o formato de chave/valor. - 4
O usuário não tem permissão a partir desta máquina
As permissões do MySQL são por máquina. Um usuário criado como
user@localhostnão consegue conectar de outra máquina nem com a senha certa. - 5
O banco de dados ainda não existe
A conexão dá certo e o USE falha. O SQL do framework nunca foi importado.
Como saber qual é o seu
Leia o código, não a frase. Depois tente conectar com as mesmas credenciais da mesma máquina:
mysql -h 127.0.0.1 -u seuusuario -p seubanco
Se isso também falhar, o problema é o MySQL e não o FiveM. Atenção: localhost e 127.0.0.1 não são intercambiáveis nas permissões do MySQL.
Onde olhar
server.cfg, a linha do set mysql_connection_string, e se o ensure do oxmysql vem antes de qualquer coisa que consulte.
Como consertar
# server.cfg — antes de cada resource que toque o banco de dados set mysql_connection_string "mysql://fivem:pass@127.0.0.1/fivem?charset=utf8mb4" ensure oxmysql
Dê as permissões certas ao usuário se ele for remoto:
CREATE USER 'fivem'@'%' IDENTIFIED BY 'pass'; GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'%'; FLUSH PRIVILEGES;
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.