QBCore, ESX e Qbox salvano giocatori, inventari e veicoli in un database MySQL/MariaDB. Lo installi una sola volta, sullo stesso VPS, e FiveM si connette tramite localhost.
Windows
- Scarica il programma di installazione MSI di MariaDB (una versione LTS) da
mariadb.org/download. - Installalo e imposta una password di root lunga. Lascia selezionato Install as service perché si avvii con Windows.
- Il programma di installazione include HeidiSQL, un programma per vedere e modificare il database da un'interfaccia grafica.
Linux (Ubuntu / Debian)
apt install -y mariadb-server
mariadb-secure-installation
Rispondi alle domande: rimuovi gli utenti anonimi e il database di prova.
Crea il database e il suo utente
Non usare root per FiveM. Entra in MariaDB (su Windows, da HeidiSQL o con mysql -u root -p; su Linux, con mariadb) ed esegui:
CREATE DATABASE fivem CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fivem'@'localhost' IDENTIFIED BY 'UNA_PASSWORD_LUNGA';
GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'localhost';
FLUSH PRIVILEGES;
Questi sono i dati che txAdmin ti chiederà durante il deploy della ricetta: database fivem, utente fivem e la sua password.
La stringa di connessione (oxmysql)
txAdmin la scrive nel tuo server.cfg. Se la inserisci a mano, ha questa forma:
set mysql_connection_string "mysql://fivem:UNA_PASSWORD_LUNGA@localhost/fivem?charset=utf8mb4"
Inoltre ensure oxmysql deve venire prima del framework nell'ordine di caricamento. Se la tua password contiene simboli come @ o #, sostituiscila con una che non li contenga: rompono la stringa.
Non aprire la porta 3306
Il database lo usa solo il server FiveM, che si trova sulla stessa macchina. Aprire la 3306 a Internet significa invitare gli attacchi. Per gestirlo dal tuo PC, usa HeidiSQL con la sua opzione di tunnel SSH (su Linux) oppure collegati tramite Desktop remoto (su Windows).
I due errori più comuni
| Errore nella console | Cosa significa |
|---|---|
ECONNREFUSED 127.0.0.1:3306 | MariaDB non è avviato. Su Windows, controlla il servizio in services.msc; su Linux, systemctl status mariadb. |
Access denied for user | Utente, password o nome del database scritti male nella stringa di connessione. |
E fai i backup: il dump giornaliero del database è ciò che ti salva se uno script ti cancella gli inventari.