Datenbank (H2 oder MySQL)
Die eingebaute H2-Datenbank, Backups, der Wechsel zu MySQL oder MariaDB und das Umziehen der Daten.
Der Master speichert Spieler, ihre Daten und die Statistiken des Netzwerks in einer Datenbank. Die Einrichtung beim ersten Start fragt, welche es sein soll, und richtet sie in der Konsole ein; danach wird sie in config/database.json eingestellt.
Eingebaute H2-Datenbank (Standard)
Neue Installationen nutzen eine eingebaute H2-Datenbank im Ordner database/ des Masters:
{
"type": "h2"
}
Es gibt nichts einzurichten, und sie ist schnell genug für Netzwerke auf einer oder wenigen Maschinen.
Backups
In der Konsole des Masters:
database backup
Das schreibt ein Backup nach database/backups/, während die Cloud weiterläuft. Zum Wiederherstellen stoppst du den Master und entpackst das Backup nach database/.
MySQL oder MariaDB
Für größere Netzwerke, oder wenn du schon einen Datenbankserver betreibst, nimm MySQL oder MariaDB. Lege eine Datenbank und einen Benutzer an:
CREATE DATABASE rexlcloud CHARACTER SET utf8mb4;
CREATE USER 'rexlcloud'@'localhost' IDENTIFIED BY 'ein-langes-zufaelliges-passwort';
GRANT ALL PRIVILEGES ON rexlcloud.* TO 'rexlcloud'@'localhost';
Dann config/database.json:
{
"type": "mysql",
"host": "127.0.0.1",
"port": 3306,
"user": "rexlcloud",
"password": "ein-langes-zufaelliges-passwort",
"database": "rexlcloud"
}
Für MariaDB kannst du "type": "mariadb" schreiben; das funktioniert genauso. Der Master legt seine Tabellen beim nächsten Start an. MySQL sicherst du mit mysqldump oder den Backups deines Hosters; database backup funktioniert nur für H2.
In eine andere Datenbank umziehen
Ob von H2 zu MySQL oder zurück, die Cloud kopiert die Daten für dich:
- Trage die Einstellungen der neuen Datenbank in
config/database-target.jsonein, im selben Format wiedatabase.json. Das Ziel muss leer sein. - Führe
database copyin der Konsole des Masters aus. Es kopiert Spieler, ihre Daten und die Statistiken. - Stoppe den Master, benenne
database-target.jsonindatabase.jsonum und starte ihn wieder.
database.json-Dateien von vor 2.0.16 haben keintypeund nutzen weiter MySQL.