THE ORB
Arrancando el studio

Falló la conexión a la base de datos (oxmysql / mysql-async)

Tu servidor no llega a su base de datos. Nada que guarde o cargue va a funcionar hasta que esto se arregle.

groupsNo se guarda ni se carga nadapersonPodés arreglarlo

Haz esto primero

Comprueba que la base de datos esté corriendo y que la línea de conexión de server.cfg tenga el usuario y la contraseña correctos.

bug_reportMejor pega tu consola entera

Qué significa

La capa de base de datos no pudo llegar a MySQL, o llegó y la rechazaron. Cada consulta de cada recurso va a fallar hasta que esto se arregle, así que una pared de errores de base de datos sin relación debajo de este es esperable y todavía no vale la pena leerla.

El código de error de node te dice cuál de las dos mitades falló:

ECONNREFUSED — llegó al equipo, no había nada escuchando en ese puerto

ETIMEDOUT — no llegó al equipo en absoluto (cortafuegos, IP equivocada)

ENOTFOUND / getaddrinfo — el nombre del equipo no resuelve

ER_ACCESS_DENIED_ERROR — llegó a MySQL, usuario o contraseña equivocados

ER_BAD_DB_ERROR — conectó, pero esa base de datos no existe

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    MySQL no está corriendo

    Lo más común en una máquina local después de reiniciar, o en un equipo nuevo donde el servicio nunca se habilitó.

  2. 2

    La cadena de conexión está mal o mal formada

    set mysql_connection_string tiene que ser una sola línea, en server.cfg, antes de los recursos que la usan. Los dos formatos funcionan, pero el de punto y coma no perdona los espacios:

    set mysql_connection_string "mysql://user:password@localhost/database?charset=utf8mb4"
  3. 3

    Una contraseña con caracteres especiales sin escapar

    @, :, / y # dentro de una contraseña rompen la forma de URI. Codificalos en porcentaje o usá la forma de clave/valor.

  4. 4

    El usuario no tiene permisos desde este equipo

    Los permisos de MySQL son por equipo. Un usuario creado como user@localhost no puede conectarse desde otra máquina ni con la contraseña correcta.

  5. 5

    La base de datos todavía no existe

    La conexión sale bien y el USE falla. El SQL del framework nunca se importó.

Cómo saber cuál es el tuyo

Leé el código, no la frase. Después probá conectarte con las mismas credenciales desde la misma máquina:

mysql -h 127.0.0.1 -u tuusuario -p tubasededatos

Si eso también falla, el problema es MySQL y no FiveM. Ojo con que localhost y 127.0.0.1 no son intercambiables en los permisos de MySQL.

Dónde mirar

server.cfg, la línea de set mysql_connection_string, y si se hace ensure de oxmysql antes de cualquier cosa que consulte.

Cómo arreglarlo

# server.cfg — antes de cada recurso que toque la base de datos
set mysql_connection_string "mysql://fivem:pass@127.0.0.1/fivem?charset=utf8mb4"
ensure oxmysql

Dale permisos al usuario como corresponde si es remoto:

CREATE USER 'fivem'@'%' IDENTIFIED BY 'pass';
GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'%';
FLUSH PRIVILEGES;

¿Sigues atascado en tu propio código?

Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.

bug_reportAbrir el Server Fixer

Para este tipo de error, el Script Optimizer detecta los patrones de consulta que causan esto.

Errores que viajan con este