THE ORB
Iniciando o studio

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.

groupsNada salva nem carregapersonVocê consegue consertar

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.

bug_reportMelhor colar o console inteiro

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. 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. 2

    A string de conexão está errada ou malformada

    set mysql_connection_string tem 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. 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. 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@localhost não consegue conectar de outra máquina nem com a senha certa.

  5. 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 Fixer

Para esse tipo de erro, o Script Optimizer detecta os padrões de consulta que causam isso.

Erros que andam junto com este