QBCore, ESX und Qbox speichern Spieler, Inventare und Fahrzeuge in einer MySQL/MariaDB-Datenbank. Du installierst sie einmal, auf demselben VPS, und FiveM verbindet sich über localhost.
Windows
- Lade den MSI-Installer von MariaDB (eine LTS-Version) von
mariadb.org/downloadherunter. - Installiere ihn und vergib ein langes Root-Passwort. Lass Install as service angehakt, damit sie mit Windows startet.
- Der Installer bringt HeidiSQL mit, ein Programm, um die Datenbank mit Fenstern anzusehen und zu bearbeiten.
Linux (Ubuntu / Debian)
apt install -y mariadb-server
mariadb-secure-installation
Beantworte die Fragen: Entferne die anonymen Benutzer und die Testdatenbank.
Lege die Datenbank und ihren Benutzer an
Nutze für FiveM nicht root. Melde dich in MariaDB an (unter Windows über HeidiSQL oder mit mysql -u root -p, unter Linux mit mariadb) und führe aus:
CREATE DATABASE fivem CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fivem'@'localhost' IDENTIFIED BY 'EIN_LANGES_PASSWORT';
GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'localhost';
FLUSH PRIVILEGES;
Das sind die Daten, nach denen txAdmin beim Bereitstellen des Rezepts fragt: Datenbank fivem, Benutzer fivem und sein Passwort.
Der Verbindungsstring (oxmysql)
txAdmin trägt ihn in deine server.cfg ein. Wenn du ihn von Hand setzt, sieht er so aus:
set mysql_connection_string "mysql://fivem:EIN_LANGES_PASSWORT@localhost/fivem?charset=utf8mb4"
Und ensure oxmysql muss in der Ladereihenfolge vor dem Framework stehen. Wenn dein Passwort Zeichen wie @ oder # enthält, nimm eines ohne: Sie zerstören den String.
Öffne den Port 3306 nicht
Die Datenbank nutzt nur der FiveM-Server, der auf derselben Maschine läuft. Den 3306 ins Internet zu öffnen heißt, zu Angriffen einzuladen. Um sie von deinem PC aus zu verwalten, nutze HeidiSQL mit seiner Option SSH-Tunnel (unter Linux) oder verbinde dich per Remotedesktop (unter Windows).
Die zwei häufigsten Fehler
| Fehler in der Konsole | Was er bedeutet |
|---|---|
ECONNREFUSED 127.0.0.1:3306 | MariaDB läuft nicht. Unter Windows prüfst du den Dienst in services.msc, unter Linux mit systemctl status mariadb. |
Access denied for user | Benutzer, Passwort oder Datenbankname im Verbindungsstring falsch geschrieben. |
Und mach Backups: der tägliche Dump der Datenbank rettet dich, wenn dir ein Skript die Inventare löscht.