So verbindest du eine Datenbank mit deinem FiveM-Server
Jedes Roleplay-Framework, das sich auf FiveM lohnt, speichert seine Daten in MySQL: Charaktere, Jobs, Fahrzeuge, Inventare, Bankkonten. Dein FiveM-Server bei DoomHosting bringt einen MySQL-Datenbankplatz mit, den du im Panel unter Datenbanken selbst anlegst, und zum Verbinden reicht eine Zeile in der server.cfg. Diese Anleitung zeigt, wie du die Datenbank erstellst, den Connection String für oxmysql zusammensetzt, ihn richtig einträgst und ein ESX- oder QBCore-Schema importierst.
Was du brauchst
- Einen FiveM-Server bei DoomHosting, der bereits startet. Falls er noch nicht bootet, trage zuerst den Lizenzschlüssel ein: so bekommst du einen FiveM-Lizenzschlüssel.
- oxmysql, die Resource, über die jedes moderne Framework mit MySQL spricht. ESX und QBCore liefern sie beide mit.
- Einen MySQL-Client auf dem PC, wenn du ein Framework-Schema importieren willst. HeidiSQL (Windows) und DBeaver (alle Plattformen) sind kostenlos.
Die Datenbank im Panel erstellen
- Öffne deine Gameserver und klicke auf deinen FiveM-Server.
- Öffne in der Bereichsnavigation unter Erweitert den Punkt Datenbanken.
- Klicke auf Neue Datenbank, gib einen kurzen Namen ein (nur Buchstaben, Zahlen und Unterstriche) und bestätige.
Wir erstellen die Datenbank und einen passenden Benutzer mit generiertem Passwort. Der Name bekommt automatisch ein Präfix: aus einer Datenbank namens esx wird also etwa s1708_esx, und der Benutzer sieht aus wie u1708_esxdemo.

Die Zeile zeigt fünf Schaltflächen mit Zugangsdaten: Datenbankname, Host, Port, Benutzername und Passwort, wobei das letzte verborgen bleibt, bis du auf das Auge klickst. Ein Klick auf eine davon kopiert den Wert. Rechts sitzen zwei Buttons: Neues Passwort rotiert das Passwort (alles, was noch das alte nutzt, funktioniert sofort nicht mehr), und der Papierkorb löscht die Datenbank samt aller Daten endgültig.

Die Kopfzeile der Karte zählt deine Plätze, zum Beispiel 1 von 1 Datenbanken belegt. Ein Platz reicht für ein normales ESX- oder QBCore-Setup, denn ein Framework und alle seine Resources teilen sich eine Datenbank. Melde dich beim Support, wenn dein Aufbau wirklich eine zweite braucht.
Was in welches Feld gehört
Der Einrichtungsschritt von txAdmin, HeidiSQL, DBeaver und die meisten Framework-Installer fragen dieselben fünf Werte ab, jeden in einem eigenen Feld. Der Tab Datenbanken zeigt sie als fünf einzelne Kopierschaltflächen in genau dieser Reihenfolge, kopiere also jeden Wert in das Feld mit dem passenden Namen.
| Das Feld im Tool | Was du einfügst | Aus welcher Schaltfläche |
|---|---|---|
| Host, Server oder Hostname / IP | 203.0.113.10 |
Host, die Adresse allein, ohne Port dahinter |
| Port | 3306 |
Port |
| Username oder User | u1708_esxdemo |
Benutzername |
| Password | das generierte Passwort | Passwort, nach einem Klick auf das Auge |
| Database oder Database name | s1708_esx |
Datenbankname |
Drei davon werden aus dem Kopf eingetippt statt kopiert, und alle drei scheitern:
localhostist nie der Host. Deine Datenbank läuft auf unserem Datenbankhost und nicht im Container des Gameservers,localhostschickt dein Framework also an eine Maschine ohne MySQL. Nimm die Adresse aus der Schaltfläche Host.rootist nie der Benutzername. Du bekommst einen eigenen Benutzer, benannt nachuplus deiner Servernummer. Ein geteilter Datenbankhost hat kein Root-Login zu vergeben,rootwird also mit jedem Passwort abgelehnt.- Der Datenbankname ist der, den wir angelegt haben, nicht einer den du dir aussuchst. Er trägt ein Präfix,
s1708_esx, und ein Installer, der einen eigenen Namen vorschlägt, schlägt eine Datenbank vor, die es nicht gibt. Kopiere die Schaltfläche Datenbankname.
Hat ein Tool kein eigenes Port-Feld, sondern nur ein Adressfeld, gehört der Port genau dorthin: 203.0.113.10:3306, Adresse und Port zusammen.
Den Connection String zusammensetzen
Du musst ihn nicht selbst zusammensetzen. Auf einem FiveM-Server zeigt der Tab Datenbanken die fertige Zeile für deine erste Datenbank unterhalb der Liste, mit einer Kopierschaltfläche und einem Auge, das das Passwort darin sichtbar macht. Kopiere sie und spring direkt zum nächsten Abschnitt.
Wenn du sie lieber selbst schreibst: oxmysql liest eine einzige Convar, mysql_connection_string, und akzeptiert zwei Formate:
set mysql_connection_string "mysql://u1708_esxdemo:[email protected]:3306/s1708_esx"
set mysql_connection_string "user=u1708_esxdemo;password=YourPassword;host=203.0.113.10;port=3306;database=s1708_esx"
Jeder Wert kommt aus seiner eigenen Schaltfläche im Tab Datenbanken: user= aus Benutzername, password= aus Passwort, host= aus Host, port= aus Port und database= aus Datenbankname. Nichts davon muss unterwegs getrennt oder angepasst werden.
Nimm das zweite Format. Unsere generierten Passwörter mischen Buchstaben und Zahlen mit Zeichen aus dem Satz ! @ = . + ^, und oxmysql führt ; , / ? : @ & = + $ # als reservierte Zeichen in einem Connection String. Ein Passwort mit @, = oder + zerlegt das mysql://-Format stillschweigend: der Parser liest einen Teil des Passworts als Hostnamen, und die Verbindung scheitert mit Zugangsdaten, die völlig korrekt sind. Die Form user=...;password=... hat diese Falle nicht.
In die server.cfg eintragen
- Öffne den Tab Dateien und klicke auf
server.cfg, um sie im Browser zu bearbeiten. - Setze den Connection String über alle Resource-Zeilen und starte oxmysql vor deinem Framework:
set mysql_connection_string "user=u1708_esxdemo;password=YourPassword;host=203.0.113.10;port=3306;database=s1708_esx"
ensure oxmysql
ensure es_extended
- Speichere die Datei und starte den Server oben im Panel neu. Convars werden nur beim Boot gelesen, eine Änderung bleibt also ohne Neustart wirkungslos.

Zwei Dinge lässt du besser unangetastet. Unser Startbefehl schreibt die Zeilen endpoint_add_tcp und endpoint_add_udp bei jedem Boot auf deinen zugewiesenen Port um, Änderungen daran sind also sinnlos. Und behandle die server.cfg als geheime Datei: sie enthält jetzt dein Datenbankpasswort direkt neben dem Lizenzschlüssel, also poste sie nie in einem Discord-Supportkanal, ohne beides zu entfernen.
Wenn du txAdmin über den Chip txAdmin aktivieren in der Übersicht eingeschaltet hast, führt FXServer die /home/container/server.cfg nicht mehr direkt aus. txAdmin übernimmt den Start und betreibt den Server aus seinem eigenen Datenordner /home/container/txData. Bearbeite dort die server.cfg im Deployment-Ordner, oder nutze den CFG-Editor, der in txAdmin selbst steckt. Zum Webpanel kommst du über txAdmin öffnen in der Übersicht.
oxmysql installieren
Sieh erst in resources nach. ESX- und QBCore-Recipes enthalten oxmysql fast immer schon, und eine zweite Kopie bringt einen Namenskonflikt zwischen Resources, keinen schnelleren Server.
Fehlt sie, lade das neueste Release aus dem oxmysql-Repository, entpacke es und lade den Ordner oxmysql über den Dateien-Tab in dein resources-Verzeichnis. Dann trägst du ensure oxmysql wie oben über deinen Framework-Resources ein. Liegen bei dir noch mysql-async oder ghmattimysql, lösche sie: oxmysql stellt deren Exports bereit, und beides gleichzeitig erzeugt doppelte Query-Handler.
Die oxmysql-Dokumentation beschreibt den Rest, darunter set mysql_debug true, das jede Query in der Konsole ausgibt, und set mysql_slow_query_warning 150 für langsame Queries.
Hinweise zu ESX und QBCore
Beide Frameworks fragen über oxmysql ab, ein Connection String bedient also das Framework und alle Resources darauf. Was keins von beiden für dich tut: die Tabellen anlegen. Die importierst du selbst:
- Installiere HeidiSQL oder DBeaver auf deinem PC.
- Lege eine neue MySQL- oder MariaDB-Verbindung mit Adresse und Port aus Host sowie Benutzername und Passwort aus dem Tab Datenbanken an. Unser Benutzer darf sich von jeder Adresse verbinden, ein Client an deinem Heimanschluss funktioniert also ohne Zusatzschritte.
- Wähle deine Datenbank, öffne die
.sql-Datei des Frameworks und führe sie aus.
Bei ESX ist das die SQL-Datei von es_extended plus alles, was die einzelnen Addons mitbringen. Siehe die ESX-Dokumentation. Bei QBCore importierst du zuerst den Dump von qb-core und danach die Dateien der einzelnen Resources, wie in der QBCore-Dokumentation beschrieben. Importiere das Schema, bevor du mit aktiviertem Framework bootest, sonst füllt sich die Konsole beim Start mit Fehlern über fehlende Tabellen.
Eine Sache zu Backups: die Backups im Panel archivieren deine Serverdateien, nicht die MySQL-Datenbank. Exportiere vor einem großen Framework-Update oder einem Wipe einen .sql-Dump mit deinem Client.
Häufige Probleme
Failed to connect oder verweigerter Zugriff beim Boot. In neun von zehn Fällen steht im String noch localhost. In deinem Gamecontainer läuft kein MySQL-Server, der Host muss also die Adresse aus dem Tab Datenbanken sein.
Access denied for user root. Auf dem Datenbankhost gibt es kein Root-Login. Kopiere die Schaltfläche Benutzername, die dir u gefolgt von deiner Servernummer liefert.
Der Port steht zweimal drin. Ein Tool mit eigenem Port-Feld will im Hostfeld nur die Adresse. Fügst du dort 203.0.113.10:3306 ein, steht der Port an beiden Stellen und nichts löst mehr auf.
Unknown database. Der Name in der Konfiguration ist nicht der, den wir angelegt haben. txAdmin und Framework-Installer schlagen beide einen eigenen Datenbanknamen vor, und diese Datenbank existiert nicht. Kopiere stattdessen die Schaltfläche Datenbankname.
Die Zugangsdaten stimmen, die Anmeldung scheitert trotzdem. Das Passwort enthält @, = oder + und du nutzt das mysql://-Format. Wechsle zur Form user=...;password=...;host=.... Ein Klick auf Neues Passwort kann dir auch ein saubereres Passwort geben, aber das zweite Format ist die verlässliche Lösung.
Resources starten, bevor die Convar gesetzt ist. oxmysql verbindet sich beim Start, die Zeile set mysql_connection_string muss also über ensure oxmysql stehen. Nutze set, nicht sets oder setr: die senden den Wert an jeden verbundenen Spieler.
Nach der Änderung an der Config passiert nichts. Starte den Server neu. Ein laufender Server liest die server.cfg nie erneut.
Fehler über unbekannte Tabellen oder Spalten. Die Verbindung steht, aber das Schema wurde nie importiert oder landete in der falschen Datenbank. Prüfe in HeidiSQL, dass die Tabellen in deiner Datenbank mit Präfix liegen und nicht in einer zweiten, die du selbst erstellt hast.
Du hast die server.cfg bearbeitet, aber txAdmin ist aktiv. txAdmin führt seine eigene Kopie unter /home/container/txData. Bearbeite diese, sonst wird die geänderte Datei einfach nie gelesen.
Der Tab Datenbanken sagt, Datenbanken sind nicht verfügbar. Dein Server hat keinen Datenbankplatz. Melde dich beim Support, dann sehen wir uns den Service an.
Nächste Schritte
Dein Framework hat jetzt einen Platz für seine Daten. Wenn du noch mitten in der Einrichtung steckst, findest du hier die Anleitung zum Lizenzschlüssel: so bekommst du einen FiveM-Lizenzschlüssel. Alle Details zu Tarifen, Hardware und Preisen stehen auf der Seite FiveM Server Hosting.
