Viele Plugins speichern Daten dauerhaft: Rechte, Kontostände, Protokolle oder den Verlauf von Bauaktionen. Dafür nutzen sie entweder eine MySQL- oder MariaDB-Datenbank, die sie über das Netzwerk erreichen, oder Dateien im eigenen Ordner unter plugins/, etwa eine SQLite- oder H2-Datenbank, also eine komplette Datenbank in einer einzelnen Datei. Klappt das Öffnen oder Speichern nicht, fehlen dem Plugin seine Daten, oder neue Änderungen gehen verloren.
Jeder Abschnitt unten behandelt eine Meldung. Die vollständige Meldung findest du in der Konsole oder unter Dateien in logs/latest.log. Die Zeilen direkt danach nennen oft die genaue Ursache. Lege vor jedem Eingriff in Plugin-Ordner, Datenbankdateien oder Konfigurationen unter Sicherungen eine Sicherung an, und lösche oder verschiebe Datenbankdateien nur bei gestopptem Server.
Die Datenbank verweigert den Zugang: Benutzer oder Passwort falsch
So sieht die Meldung aus:
java.sql.SQLException: Access denied for user '<Benutzer>'@'<Adresse>' (using password: YES)
Was dahintersteckt: Ein Plugin wie LuckPerms oder CoreProtect will sich mit seiner MySQL- oder MariaDB-Datenbank verbinden, aber Benutzername oder Passwort stimmen nicht. Die Datenbank lehnt die Anmeldung ab. Damit kann das Plugin weder Daten laden noch speichern: Je nach Plugin startet es gar nicht oder läuft ohne seine Rechte, Kontostände oder Protokolle, und neue Änderungen gehen nicht in die Datenbank. Steht am Ende using password: NO, ist in der Konfiguration gar kein Passwort eingetragen.
So behebst du es:
- Sieh unter Datenbanken bzw. bei deinem Datenbank-Add-on nach, welche Zugangsdaten gelten: Host, Port, Datenbankname, Benutzer und Passwort.
- Öffne unter Dateien die Konfiguration des Plugins, bei LuckPerms zum Beispiel
plugins/LuckPerms/config.yml, Abschnittdata. - Trage alle Werte exakt so ein, wie sie im Panel stehen. Achte auf Groß- und Kleinschreibung und auf Leerzeichen am Ende.
- Enthält das Passwort Sonderzeichen wie
#oder:, setze es in einfache Anführungszeichen. YAML, das Textformat dieser Dateien, liest den Wert sonst falsch. - Speichere die Datei und starte den Server neu.
Gut zu wissen: Wurde das Datenbank-Passwort zurückgesetzt, gilt das alte in keiner Plugin-Konfiguration mehr. Trage das neue überall ein, wo die Datenbank genutzt wird.
spark kann seine Zwischendateien nicht anlegen
So sieht die Meldung aus:
[spark] Exception occurred while rotating profiler job
java.lang.RuntimeException: Unable to create temporary output file
[spark] Failed to stop previous profiler job
Was dahintersteckt: spark ist ein Profiler, also ein Messwerkzeug, das aufzeichnet, womit der Server seine Rechenzeit verbringt. Seine Zwischendateien legt spark im Ordner plugins/spark/tmp-client ab. Fehlt dieser Ordner, scheitert jeder Messdurchlauf, und spark versucht es im Minutentakt erneut. Daher kommen die vielen gleichen Meldungen. Dein Server läuft davon unbeeinträchtigt weiter, und es ist weder ein Speicherplatz- noch ein Rechteproblem.
So behebst du es:
- Am schnellsten geht es mit der Schaltfläche „Automatisch beheben“ bei der Meldung in der Server-Gesundheit.
- Von Hand: Öffne Dateien, wechsle in den Ordner
plugins/sparkund lege darin den Ordnertmp-clientan. Achte auf die genaue Schreibweise. - Beobachte die Konsole ein paar Minuten lang. Die Meldungen sollten ausbleiben.
Gut zu wissen: Ein Neustart allein hilft nicht, weil spark den Ordner nicht von selbst neu anlegt. Wie du spark für die Lag-Suche nutzt, zeigt spark: Lag finden und verstehen.
Ein Plugin erreicht seine Datenbank nicht
So sieht die Meldung aus:
<Plugin>-hikari - Connection is not available, request timed out after <Zeit>ms.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
[LuckPerms] Failed to init storage
Was dahintersteckt: Das Plugin bekommt keine Verbindung zu seiner MySQL- oder MariaDB-Datenbank. Typische Gründe: Der Host in der Konfiguration ist falsch, die Datenbank ist gestoppt, oder eine bestehende Verbindung ist abgebrochen. „Hikari“ ist der Verbindungspool, der Datenbankverbindungen für das Plugin bereithält. Solange das anhält, fehlen dem Plugin seine Daten.
So behebst du es:
- Prüfe, ob dein Datenbank-Add-on läuft.
- Vergleiche Host und Port in der Plugin-Konfiguration mit den Angaben unter Datenbanken bzw. beim Add-on. Trage nicht einfach
localhostein, sondern genau den Host aus dem Panel. - Starte den Server neu und beobachte die Startmeldungen des Plugins in der Konsole.
- Brauchst du keine eigene Datenbank, stelle das Plugin auf lokalen Speicher um, bei LuckPerms mit
storage-method: h2inplugins/LuckPerms/config.yml. Daten aus der Datenbank kommen dabei nicht automatisch mit.
Gut zu wissen: Folgt auf „Error whilst saving group“ der Hinweis „Value too long“, ist nicht die Verbindung schuld. Dann ist ein Eintrag länger als die 200 Zeichen, die LuckPerms dafür vorsieht, etwa ein Präfix mit vielen Farbangaben. Kürze ihn.
Grim kann seine Verlaufsdatenbank nicht öffnen
So sieht die Meldung aus:
IMPORTANT: Could not load SQLite driver for /grim history database.
Download the minecraft-sqlite-jdbc mod/plugin …, or change history.database.type
Alternatively set history.enabled=false to remove this message …
Was dahintersteckt: Grim ist ein Anti-Cheat-Plugin. Mit /grim history zeigt es frühere Auswertungen zu einem Spieler an und speichert sie dafür in einer SQLite-Datenbank, einer Datenbank in einer einzelnen Datei. Um sie zu öffnen, braucht Grim einen SQLite-Treiber, ein kleines Zusatzpaket für den Datenbankzugriff. Dieser Treiber fehlt, deshalb steht die Verlaufsdatenbank nicht zur Verfügung.
So behebst du es:
- Installiere unter Plugins bzw. Mods die Abhängigkeit minecraft-sqlite-jdbc in der Version, die zu deiner Grim-Version passt.
- Alternativ wählst du in der Grim-Konfiguration unter
history.database.typeeine andere Verlaufsdatenbank. - Brauchst du den Verlauf nicht, schalte ihn ab: In der Konfiguration ist das der Wert
enabledim Abschnitthistory, die Meldung schreibt ihn alshistory.enabled=false. - Stoppe den Server vollständig und starte ihn wieder.
Gut zu wissen: Die Meldung erscheint bei jedem Start, bis du einen der drei Wege umsetzt.
LuckPerms kann seine Datenbank nicht aktualisieren
So sieht die Meldung aus:
[LuckPerms] Something went wrong whilst upgrading the LuckPerms database. Please report this on GitHub.
org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence "<Name>" already exists; SQL statement:
Was dahintersteckt: Bei einem Versionswechsel passt LuckPerms die Struktur seiner Datenbank an die neue Version an. Dieser Schritt ist nicht vollständig gelungen. Die Zeile direkt danach, meist eine H2- oder SQL-Meldung, nennt den Schritt, der fehlgeschlagen ist. H2 ist die Datenbankdatei, die LuckPerms ohne eigene MySQL-Datenbank im Ordner plugins/LuckPerms anlegt.
So behebst du es:
- Stoppe den Server und lege unter Sicherungen eine Sicherung an, bevor du es erneut versuchst.
- Aktualisiere LuckPerms auf einen aktuellen Build, der zu deiner Server-Software und Version passt.
- Lösche oder bearbeite die Datenbankdateien nicht von Hand.
- Tritt der Fehler erneut auf, stelle die Sicherung wieder her. Danach helfen die offizielle Migration von LuckPerms oder der LuckPerms-Support.
Gut zu wissen: Solange LuckPerms noch läuft, sicherst du mit lp export <Datei> alle Rechte und Gruppen zusätzlich in einer Datei. lp import <Datei> liest sie später wieder ein.
Ausführlich: LuckPerms sicher aktualisieren: Plattform, Backup und Rechte
Der Datenbank-Ordner eines Plugins fehlt
So sieht die Meldung aus:
java.sql.SQLException: path to 'plugins/<Plugin>/databases/<Datei>.db': '/home/container/plugins/<Plugin>/databases' does not exist
Was dahintersteckt: Das Plugin speichert seine Daten in einer SQLite-Datenbank, also in einer einzelnen Datei im Plugin-Ordner. Die Datei selbst kann es anlegen, den Ordner dafür aber nicht. Solange dieser Ordner fehlt, kann das Plugin nichts laden oder speichern, zum Beispiel Kontostände, Kits oder Warps. Das kann etwa passieren, wenn ein Plugin-Ordner gelöscht oder nur teilweise hochgeladen wurde.
So behebst du es:
- Lies in der Meldung den Ordner hinter dem Doppelpunkt ab, im Beispiel
plugins/<Plugin>/databases. - Öffne Dateien und lege genau diesen Ordner an. Achte auf Groß- und Kleinschreibung,
Databasesunddatabasessind verschiedene Ordner. - Starte den Server neu und prüfe, ob die Meldung ausbleibt.
Gut zu wissen: /home/container ist das oberste Verzeichnis, das du unter Dateien siehst. Diesen Teil des Pfads lässt du beim Anlegen weg.
Ein Plugin schickt SQLite Befehle, die nur MySQL kennt
So sieht die Meldung aus:
[SQLITE_ERROR] SQL error or missing database (near "<Wort>": syntax error)
Was dahintersteckt: SQLite und MySQL sprechen fast, aber nicht ganz dieselbe Datenbanksprache. Das Plugin speichert seine Daten in SQLite, schickt aber Befehle, die nur MySQL versteht. Das ist ein Fehler im Plugin, nicht in deinen Dateien oder Einstellungen. Die betroffenen Funktionen speichern nichts. Das Wort hinter near zeigt, an welcher Stelle SQLite den Befehl nicht verstanden hat.
So behebst du es:
- Aktualisiere das Plugin unter Plugins auf die neueste Version für deine Server-Version. Vielleicht ist der Fehler dort schon behoben.
- Bietet das Plugin MySQL als Speicher an, lege unter Datenbanken eine Datenbank an, sofern dein Plan Datenbanken enthält.
- Stelle in der Konfiguration des Plugins den Speicher auf MySQL um, trage die Zugangsdaten ein und starte den Server neu.
- Hilft beides nicht, melde den Fehler dem Plugin-Autor und lege die Zeile aus dem Log bei.
Gut zu wissen: Beim Wechsel auf MySQL übernimmt ein Plugin bisherige SQLite-Daten in der Regel nicht von selbst, außer es bietet dafür eine eigene Funktion an.
EzShops oder Jaloquent erreichen ihren Speicher nicht
So sieht die Meldung aus:
[EzShops] Failed to initialise Jaloquent for player shops; falling back to YAML
com.github.ezframework.jaloquent.exception.StorageException: Failed to begin transaction
Was dahintersteckt: Jaloquent ist die Speicherbibliothek, über die EzShops seine Spieler-Shops in einer Datenbank ablegt. Hier konnte Jaloquent eine Transaktion nicht starten, also einen zusammengehörigen Schreibvorgang, oder EzShops konnte seinen Jaloquent-Speicher gar nicht erst einrichten. Die eigentliche Ursache nennt die Fehlermeldung direkt danach. EzShops kann teilweise auf YAML-Dateien zurückfallen, die Daten landen dann in Dateien statt in der Datenbank.
So behebst du es:
- Lies in
logs/latest.logdie Fehlermeldung direkt unter dieser Zeile. Sie nennt die Datenbank- oder Speicherursache, etwa „Access denied“ oder „Communications link failure“. - Prüfe, ob dein Datenbank-Add-on läuft.
- Kontrolliere Host, Port und Zugangsdaten in der Konfiguration des betroffenen Plugins.
- Ist EzShops auf YAML zurückgefallen, lege unter Sicherungen eine Sicherung an, bevor du etwas änderst. So bleiben Shops erhalten, die zwischenzeitlich in YAML gespeichert wurden.
- Starte den Server neu.
PvPManager findet seinen Datenbank-Ordner nicht
So sieht die Meldung aus:
[PvPManager] Failed to batch update database
java.sql.SQLException: path to 'plugins/PvPManager/database.db': '<Pfad>' does not exist
Was dahintersteckt: PvPManager regelt den Kampf zwischen Spielern und speichert seine Spielerdaten in der SQLite-Datenbank plugins/PvPManager/database.db. Der Ordner plugins/PvPManager fehlt jedoch im Dateisystem des Servers. Deshalb kann PvPManager seine Datenbank weder öffnen noch beschreiben, und neue Daten werden nicht gespeichert.
So behebst du es:
- Stoppe den Server.
- Lege unter Dateien den Ordner
plugins/PvPManageran und achte auf die genaue Schreibweise. Alternativ installierst du PvPManager unter Plugins sauber neu. - Prüfe die Dateirechte: Lege im neuen Ordner testweise eine Datei an und lösche sie wieder.
- Prüfe, ob noch genug freier Speicher vorhanden ist.
- Starte den Server und prüfe, ob die Meldung ausbleibt.
Gut zu wissen: Ist der Speicher voll, hilft Speicherplatz voll: „No space left on device“ beheben.
EssentialsX kann seinen UUID-Cache nicht speichern
So sieht die Meldung aus:
[Essentials] Error while saving Name->UUID cache
java.io.IOException: No such file or directory
Was dahintersteckt: EssentialsX merkt sich, welcher Spielername zu welcher UUID gehört, der festen Kennung eines Minecraft-Kontos. Diese Liste schreibt es als Cache, also als Zwischenspeicher, in seinen Datenordner und legt dafür zuerst eine temporäre Datei an. Das scheitert, weil der Ordner plugins/Essentials fehlt oder nicht beschreibbar ist. Fehlt der Ordner wirklich, kann EssentialsX auch seine übrigen Daten dort nicht ablegen.
So behebst du es:
- Öffne Dateien und prüfe, ob der Ordner
plugins/Essentialsexistiert. Lege ihn sonst an. - Prüfe, ob er beschreibbar ist: Lege darin testweise eine Datei an und lösche sie wieder.
- Aktualisiere EssentialsX unter Plugins auf eine Version für deine Server-Version.
- Starte den Server neu.
Gut zu wissen: Lässt sich im Ordner keine Datei anlegen, gehört er vermutlich nicht dem Benutzer, unter dem dein Server läuft. Kommst du nicht weiter, öffne ein Ticket und nenne die Uhrzeit der Meldung.
FastAsyncWorldEdit: Eine Verlaufsdatei ist beschädigt
So sieht die Meldung aus:
Could not load block history file plugins/FastAsyncWorldEdit/history/<Ordner>/<Datei>
An unexpected error while handling a FastAsyncWorldEdit command
java.io.EOFException: Stream ended prematurely
Was dahintersteckt: FastAsyncWorldEdit, kurz FAWE, speichert zu Bauaktionen eine Verlaufsdatei, damit du sie mit //undo rückgängig machen kannst. Eine dieser Dateien ist unvollständig, meist weil der Server gestoppt wurde, während FAWE noch schrieb. Genau dieses //undo ist dann nicht möglich. Deine Welt selbst ist nicht betroffen, und der Server läuft normal weiter.
So behebst du es:
- Meist ist nichts nötig. Die Meldung betrifft nur diesen einen Verlaufsschritt.
- Wiederholt sie sich, stoppe den Server.
- Lösche unter Dateien den in der Meldung genannten Ordner unter
plugins/FastAsyncWorldEdit/history. - Starte den Server wieder.
Gut zu wissen: Nach dem Löschen lassen sich die Aktionen aus diesem Ordner nicht mehr rückgängig machen. Mehr zu //undo: WorldEdit: bauen und rückgängig machen.
WorldEdit: Die gespeicherte Zwischenablage lässt sich nicht laden
So sieht die Meldung aus:
Error loading clipboard from disk
… Size exceeds Integer.MAX_VALUE
Was dahintersteckt: FAWE kann die Zwischenablage eines Spielers auf der Festplatte ablegen. Die gespeicherte Zwischenablage ließ sich nicht laden: Entweder ist sie zu groß, dann steht „Size exceeds Integer.MAX_VALUE“ in der Meldung, oder sie ist beschädigt. Der Spieler muss seine Auswahl neu kopieren. Welt und Server sind davon nicht betroffen.
So behebst du es:
- Stoppe den Server.
- Öffne unter Dateien den Ordner
plugins/FastAsyncWorldEdit/clipboard. - Lösche die Datei des betroffenen Spielers. Ihr Name enthält in der Regel seine UUID, die feste Kennung seines Minecraft-Kontos.
- Starte den Server wieder und lass den Spieler die Auswahl neu kopieren.
Gut zu wissen: Sehr große Kopien speicherst du besser als Schematic, also als eigene Bauplan-Datei, zum Beispiel mit //schem save <Name>. Die lädst du bei Bedarf mit //schem load <Name> wieder in die Zwischenablage.
WorldEdit: Eine Schematic enthält eine Entität ohne Position
So sieht die Meldung aus:
Failed to load a saved clipboard
java.io.IOException: Missing position for entity <Entität>
Was dahintersteckt: Entitäten sind alles in der Welt, was kein Block ist, etwa Tiere, Rüstungsständer oder Rahmen. Die gespeicherte Schematic, also die Bauplan-Datei, enthält eine Entität, der die Positionsangabe fehlt. Deshalb kann WorldEdit die Schematic nicht vollständig laden. Deine Welt ist davon nicht betroffen, nur diese eine Schematic lässt sich nicht sauber einfügen.
So behebst du es:
- Steht das Bauwerk noch in einer Welt, wähle es mit WorldEdit erneut aus und kopiere es mit
//copyohne die Option-e. So bleiben Entitäten außen vor. - Speichere die neue Kopie mit
//schem save <Name>unter einem neuen Namen und nutze ab jetzt diese Datei. - Hast du nur noch die Datei, öffne sie in einem Schematic-Editor und entferne die beschädigte Entität.
- Lade die Schematic danach mit
//schem load <Name>und prüfe, ob die Meldung ausbleibt.
Gut zu wissen: Brauchst du Tiere oder Rahmen im Bauwerk nicht, ist das Speichern ohne Entitäten der schnellste Weg.
Ein Zwischenspeicher-Ordner fehlt
So sieht die Meldung aus:
java.nio.file.NoSuchFileException: /home/container/.cache/<Datei>
Was dahintersteckt: Eine Mod oder ein Launcher, also ein Startprogramm, wollte Dateien im Ordner .cache im obersten Verzeichnis deines Servers ablegen. Dieser Ordner existiert aber nicht. Das passiert typischerweise nach einer Neuinstallation oder wenn der Ordner beim Aufräumen gelöscht wurde. Meist erledigt sich das von selbst, weil der nächste Start den Ordner neu anlegt.
So behebst du es:
- Starte den Server einmal neu. In den meisten Fällen ist die Meldung danach weg.
- Bleibt sie, öffne Dateien und lege im obersten Verzeichnis testweise einen Ordner an. Klappt das nicht, ist das Verzeichnis nicht beschreibbar.
- Prüfe, ob noch genug Speicherplatz frei ist. Ein voller Speicher verhindert ebenfalls, dass Ordner angelegt werden.
- Kommst du nicht weiter, öffne ein Ticket und nenne die Uhrzeit der Meldung.
Gut zu wissen: Bei vollem Speicher hilft Speicherplatz voll: „No space left on device“ beheben.
Home-Plugin kann einen Teleportpunkt nicht speichern
So sieht die Meldung aus:
Failed to create home for player <Spieler-ID> in the database.
Was dahintersteckt: Ein Home ist ein gespeicherter Teleportpunkt. Das zuständige Plugin versucht, einen neuen Eintrag in seiner Datenbank anzulegen, und scheitert dabei. Der neue Home-Eintrag wird nicht gespeichert; der Server läuft weiter. Die konkrete Datenbankursache steht gewöhnlich in den angrenzenden Fehlermeldungen.
So behebst du es:
- Öffne in der Konsole oder unter Dateien in
logs/latest.logdie Zeilen unmittelbar vor und nach der Meldung. Suche den Plugin-Namen und die zugehörige Datenbankfehlermeldung. - Prüfe die Speicherkonfiguration dieses Plugins. Nutzt es eine externe Datenbank, vergleiche Adresse, Datenbank und Zugangsdaten mit Datenbanken.
- Sichere die bestehende Datenbank, bevor du ihre Einstellungen oder Tabellen änderst. Behebe anschließend den konkret genannten Fehler nach der Plugin-Dokumentation.
- Versuche das Anlegen des Homes erneut. Bleibt der Fehler, melde ihn dem Autor mit der vollständigen Fehlerspur und der Uhrzeit.
Gut zu wissen: Das Löschen der Datenbank entfernt auch bereits gespeicherte Homes.
Deine Meldung ist nicht dabei?
Lies die ganze Meldung in logs/latest.log und auch die Zeilen davor und danach. Bei Datenbankfehlern steht die eigentliche Ursache oft in einer Zeile mit „Caused by“. Welches Plugin betroffen ist, verraten der Name in eckigen Klammern und die Ordnernamen im Stacktrace, also in den at …-Zeilen unter der Meldung, etwa me/lucko/luckperms für LuckPerms. Prüfe dann Zugangsdaten, Ordner und freien Speicher. Lege vor jedem Eingriff eine Sicherung an. Kommst du nicht weiter, öffne ein Ticket und nenne die Uhrzeit der Meldung.