Zum Inhalt springen

So richtest du eine Datenbank für deinen FiveM Server ein

Viele FiveM Skripte und Frameworks speichern ihre Daten in einer MySQL-Datenbank. Damit dein Server darauf zugreifen kann, brauchst du zwei Dinge: eine Datenbank samt Zugangsdaten und eine Datenbank-Resource, die die Verbindung herstellt.

Wir empfehlen oxmysql. Die Resource wird aktiv gepflegt und ersetzt die veralteten Resources mysql-async und ghmattimysql, deren Funktionen sie mit abdeckt.

Datenbank anlegen

  1. Datenbank erstellen
    Lege in der Verwaltung unter Datenbanken über das Plus-Symbol eine neue Datenbank an. Die ausführliche Anleitung dazu findest du unter Datenbank erstellen.

  2. Zugangsdaten ablesen
    Klicke neben deiner Datenbank auf das Augen-Symbol. Du brauchst gleich diese Werte:

    • Datenbank Host (z.B. db1.cgn1.emeraldhost.de)
    • Datenbank Port (Standard: 3306)
    • Datenbank Benutzername
    • Datenbank Passwort
    • Datenbank Name

Wichtig

Teile deine Datenbank-Zugangsdaten niemals mit anderen Personen und poste sie nicht in Screenshots, Konsolen-Logs oder Support-Tickets von Drittanbietern. Wer die Zugangsdaten hat, kann alle Daten deines Servers auslesen und löschen.

oxmysql hochladen

  1. Resource herunterladen
    Lade dir das aktuelle Release von oxmysql herunter. Verwende die Datei oxmysql.zip und nicht den Quellcode-Download.

  2. Archiv entpacken
    Entpacke das Archiv. Du erhältst einen Ordner mit dem Namen oxmysql.

    Achtung

    Der Ordnername muss exakt oxmysql lauten. Benennst du ihn um, findet FiveM die Resource nicht.

  3. Server stoppen
    Stoppe deinen Server über die Verwaltung.

  4. Per SFTP verbinden
    Verbinde dich per SFTP mit deinem Server.

  5. Ordner hochladen
    Lade den Ordner oxmysql in den resources-Ordner hoch, der neben der server.cfg deines Servers liegt.

    SetupPfad
    Standard (empfohlen)/home/container/resources
    txAdmin Recipe / Deployer/home/container/txData/<Profilname>/resources

Connection String eintragen

Der Connection String bündelt alle Zugangsdaten in einer Zeile. oxmysql liest ihn aus der Convar mysql_connection_string.

  1. server.cfg öffnen
    Öffne die server.cfg, die dein Server verwendet. Welche das ist, hängt von deinem txAdmin Setup ab – die Übersicht dazu findest du unter Port einstellen.

  2. Connection String setzen
    Trage folgende Zeile ein und ersetze die Platzhalter durch deine Zugangsdaten aus dem Augen-Symbol:

    set mysql_connection_string "mysql://BENUTZERNAME:PASSWORT@HOST:PORT/DATENBANKNAME"

    Alternativ akzeptiert oxmysql auch das Format mit Semikolons:

    set mysql_connection_string "user=BENUTZERNAME;password=PASSWORT;host=HOST;port=PORT;database=DATENBANKNAME"
  3. Nur set verwenden
    Setze die Convar ausschließlich mit set.

    Wichtig

    Verwende niemals setr oder sets für den Connection String. setr überträgt den Wert an alle verbundenen Spieler, sets zeigt ihn öffentlich in der Serverliste und in der info.json deines Servers an. In beiden Fällen wäre dein Datenbank-Passwort für jeden einsehbar.

  4. oxmysql starten
    Füge unterhalb des Connection Strings die Startzeile für die Resource ein:

    ensure oxmysql

    Achtung

    Die Reihenfolge in der server.cfg ist entscheidend. Der set mysql_connection_string muss vor allen ensure-Zeilen stehen, und ensure oxmysql muss vor allen Skripten stehen, die die Datenbank nutzen. Sonst starten diese Skripte, bevor die Datenbankverbindung steht.

  5. Server starten
    Speichere die server.cfg und starte deinen Server über die Verwaltung.

Hinweis

Beim Serverstart schreibt die Verwaltung einige Zeilen der server.cfg automatisch neu, unter anderem endpoint_add_tcp, endpoint_add_udp, sv_hostname, set sv_licenseKey, set steam_webApiKey und sv_maxclients. Deine Zeilen set mysql_connection_string und ensure oxmysql bleiben davon unberührt und gehen nicht verloren.

Verbindung prüfen

Öffne nach dem Start die Konsole deines Servers in der Verwaltung. Hat die Verbindung geklappt, findest du dort diese Meldung:

Database server connection established!

Davor steht in eckigen Klammern die Version deines Datenbankservers.

Schlägt die Verbindung fehl, gibt oxmysql stattdessen eine Meldung in dieser Form aus:

Unable to establish a connection to the database (FEHLERCODE)!

Prüfe in diesem Fall Benutzername, Passwort, Host, Port und Datenbankname noch einmal über das Augen-Symbol in der Verwaltung.

Sonderzeichen im Passwort

Je nach verwendetem Format sind bestimmte Sonderzeichen reserviert oder werden nicht unterstützt. Enthält dein Datenbank-Passwort eines dieser Zeichen, kann die Verbindung fehlschlagen:

; , / ? : @ & = + $ #

Tipp

Enthält dein generiertes Passwort eines dieser Zeichen, lass dir in der Verwaltung über Neues Passwort generieren ein neues Passwort erstellen, bis es frei von diesen Zeichen ist. Alternativ kannst du auf das jeweils andere Connection-String-Format wechseln.

Achtung

Kodiere das Passwort nicht (also z.B. nicht %40 statt @). oxmysql löst solche Kodierungen nicht auf und übergibt sie unverändert an die Datenbank – die Anmeldung schlägt dann ebenfalls fehl.

Weitere Convars

Für die Fehlersuche stellt oxmysql zusätzliche Convars bereit, die du ebenfalls mit set in die server.cfg einträgst:

ConvarBeschreibung
set mysql_debug trueGibt alle Datenbankabfragen in der Konsole aus
set mysql_slow_query_warning 150Warnt, wenn eine Abfrage länger als die angegebene Zeit in Millisekunden dauert

Tipp

Erstelle vor größeren Änderungen an deiner Datenbank ein Backup deines Servers. Den Inhalt der Datenbank selbst sicherst du über phpMyAdmin.

Wie geht es weiter?

Deine Datenbank ist jetzt verbunden, aber noch leer. Die meisten Frameworks und Skripte bringen eine .sql-Datei mit, die die benötigten Tabellen anlegt. Wie du sie einspielst, steht unter Datenbank importieren.