Nextcloud-Datenbankfehler nach einem Update: Was Sie zuerst überprüfen sollten

Wenn Nextcloud nach einem Update eine „Datenbankfehler“-Ausnahme anzeigt, prüfen Sie den zugrunde liegenden Datenbankfehler, nextcloud.logbevor Sie Tabellen ändern. Stellen Sie zuerst die Datenbankverbindung wieder her. Falls das Update zwischenzeitlich abgebrochen wurde, führen Sie es mit dem Befehl `npm run dev` fort occ upgradeund verwenden Sie erst dann die dokumentierten Reparaturbefehle, wenn die Protokolle dies rechtfertigen.

Identifizieren Sie den tatsächlichen Fehler

Die Browsermeldung ist ein Symptom, keine Diagnose. Nextcloud kann möglicherweise nicht auf MySQL/MariaDB oder PostgreSQL zugreifen, das Datenbankkonto kann sich nicht mehr authentifizieren oder Anwendungscode und Schema befinden sich in unterschiedlichen Aktualisierungsstadien. Die offizielle Fehlerbehebungshilfe von Nextcloud empfiehlt, die ID der fehlgeschlagenen Anfrage mit dem Serverprotokoll abzugleichen.

  1. Protokollieren Sie die Uhrzeit, die vollständige Browserfehlermeldung und die angezeigte Anfrage-ID. Veröffentlichen Sie keine privaten Protokolleinträge, ohne Geheimnisse und persönliche Informationen zu entfernen.
  2. Das konfigurierte Datenverzeichnis finden Sie unter config/config.php. Die Standardprotokolldatei ist data/nextcloud.log, aber bei benutzerdefinierten Bereitstellungen werden die Protokolle möglicherweise an einem anderen Ort gespeichert.
  3. Bei einer herkömmlichen Linux-Installation überprüfen Sie die letzten Einträge und anschließend die Protokolle des Datenbankdienstes. Ersetzen Sie durch Ihren tatsächlichen Nextcloud-Pfad:
sudo tail -n 100 /var/www/nextcloud/data/nextcloud.log
sudo journalctl -u mariadb --since '30 minutes ago'

Der zweite Befehl gilt nur für Hosts, auf denen MariaDB unter systemd ausgeführt wird. Verwenden Sie für andere Bereitstellungen die PostgreSQL-Dienst- oder Containerprotokolle. Suchen Sie nach dem Ausnahmecode SQLSTATEund der ersten datenbankbezogenen Ursache, anstatt sich auf die letzte Zeile des Stack-Traces zu verlassen.

ProtokollhinweisErste nützliche Überprüfung
SQLSTATE[HY000] [2002]Datenbankprozess, Hostname, Port, Socket-Pfad oder SQLite-Dateizugriff; der Treiber bestimmt die Interpretation.
SQLSTATE[HY000] [1040]Erschöpfung der MySQL/MariaDB-Verbindungen und aktiven Sitzungen.
MySQL server has gone awayDatenbankneustarts, Verbindungsabbrüche, Ressourcenengpässe und Serverprotokolle.
Authentifizierung oder Zugriff verweigertDatenbankkonto, Passwort, Netzwerkzugriff und Berechtigungen.
Fehlende Tabelle, Relation oder SpalteOb das Datenbank-Upgrade abgeschlossen wurde und ob der installierte Code mit dem Schema übereinstimmt.

Die ersten drei Beispiele werden in der Dokumentation häufiger Nextcloud-Fehler behandelt. Eine Fehlermeldung bezüglich einer fehlenden Tabelle bedeutet nicht, dass Sie die Tabelle manuell erstellen dürfen: Ermitteln Sie zunächst den genauen Migrationsfehler.

Schützen Sie die Instanz, bevor Sie eine Korrektur anwenden.

Bevor Sie Migrationen wiederholen, erstellen Sie unbedingt ein wiederherstellbares Backup Ihrer Datenbank inklusive Nextcloud-Konfiguration und -Daten. Das offizielle Backup-Verfahren sichert gegebenenfalls auch benutzerdefinierte Apps und Themes. Stellen Sie sicher, dass das Backup denselben Zeitpunkt erfasst hat; ein reines Code-Backup kann eine teilweise geänderte Datenbank nicht wiederherstellen.

  • Unterbrechen Sie nach Möglichkeit während eines Wiederherstellungsfensters Synchronisierungs- und Hintergrundprozesse, insbesondere wenn Datenbankschreibvorgänge oder -aktualisierungen anstehen.
  • Halten Sie die alten und neuen Nextcloud-Versionen, die Datenbank-Engine/Version, die PHP-Version und die Aktualisierungsmethode fest.
  • Löschen Sie keine Datenbanktabellen, importieren Sie kein leeres Schema, führen Sie keine zufälligen SQL-Abfragen aus Foren aus und stellen Sie nicht wiederholt nur eine Komponente eines mehrteiligen Backups wieder her.

Die folgenden Befehle setzen eine Standardinstallation von Debian/Ubuntu unter `/var/www/debian/` voraus /var/www/nextcloud, wobei `/var/www/debian/ www-data` als Webserver-Benutzerkonto verwendet wird. Führen Sie die Befehle occals der entsprechende HTTP-Benutzer aus; Paket-, Docker-, Snap-, AIO- und verwaltete Installationen verwenden andere Pfade und Ausführungsmethoden. Die Referenz zum Befehl `occ` erläutert diese Anforderungen.

Datenbankverbindung vor der Migration wiederherstellen

Überprüfen Sie die Datenbankdienst- und Nextcloud-Verbindungseinstellungen.

Wenn die Protokolle eine Verbindungsverweigerung, einen nicht erreichbaren Socket oder einen nicht verfügbaren Server anzeigen, überprüfen Sie zunächst, ob der vorhandene Datenbankdienst ausgeführt wird. Dies sind alternative Prüfungen auf Hostebene und keine Liste, die wahllos ausgeführt werden sollte:

sudo systemctl status mariadb
sudo systemctl status postgresql

Prüfen Sie bei einem separaten Datenbankserver zusätzlich DNS, Firewall-Regeln, den gewählten Port und die Netzwerkerreichbarkeit vom Nextcloud-Anwendungshost bzw. -Container aus. Achten Sie config/config.phpauf die Parameter `<hostname> dbtype`, dbhost` <port> dbname` , `<socket>` und `<socket>`. dbuserDie Referenz der Konfigurationsparameter erläutert Hostnamen, Ports und die Unix-Socket-Syntax. Fügen Sie diese niemals in öffentliche Tickets oder Shell-Befehle ein dbpassword, die diese im Verlauf preisgeben.

Wurde während der Bereitstellung ein Datenbankpasswort geändert oder wurden die Zugangsdaten angepasst, beheben Sie diese Diskrepanz mithilfe Ihres Workflows zur Geheimnisverwaltung. Meldet der Server zu viele Verbindungen, prüfen Sie die aktiven Verbindungen und die Ursache der Verbindungsanhäufung, bevor Sie Kapazitätsänderungen in Betracht ziehen. Ein Indexierungsbefehl behebt einen Verbindungsabbruch nicht.

Überprüfen Sie die Laufzeitkompatibilität nach dem Update.

Ein gleichzeitiges PHP- oder Datenbankserver-Upgrade kann eine zuvor funktionierende Installation beschädigen. Vergleichen Sie die Zielversion von Nextcloud mit ihren offiziellen Systemanforderungen und Versionshinweisen, anstatt davon auszugehen, dass alle aktuell installierten Treiber- und Serverversionen weiterhin unterstützt werden. Laut der geprüften Nextcloud-35-Dokumentation werden PHP 8.3–8.5 unterstützt; die unterstützten Datenbankversionen sind dort separat dokumentiert. Frühere Versionen haben andere Einschränkungen.

Stellen Sie außerdem sicher, dass der für Ihre gewählte Engine benötigte PHP-Datenbanktreiber sowohl in der Kommandozeilen- als auch in der Web-PHP-Umgebung aktiviert ist. Führen Sie nach einer Schema-Migration kein Downgrade des Datenbankservers durch: Stellen Sie die Datenbank nur aus einem kompatiblen, konsistenten Backup wieder her.

Schließen Sie das unterbrochene Nextcloud-Upgrade ab oder reparieren Sie es.

Sobald die Datenbank erreichbar ist und ein Backup erstellt wurde, wechseln Sie in das Nextcloud-Installationsverzeichnis und überprüfen Sie dessen Status:

cd /var/www/nextcloud
sudo -E -u www-data php occ status

Wenn Nextcloud meldet, dass ein Upgrade aussteht oder unvollständig ist, folgen Sie dem unterstützten Upgrade-Pfad für die installierten Quell- und Zielversionen. Führen Sie für eine herkömmliche manuelle Installation Folgendes aus:

sudo -E -u www-data php occ upgrade

Unterbrechen Sie den Befehl nicht und führen Sie keine parallelen Aktualisierungsprozesse aus. Lesen Sie die Ausgabe: Eine erfolgreiche Migration unterscheidet sich von einer Datenbankverbindungsausnahme. Die Dokumentation zur manuellen Aktualisierung von Nextcloud gibt explizite Empfehlungen, occ upgradewann der webbasierte Prozess hängen bleibt und maintenance:repairob der Aktualisierungspfad repariert werden muss.

sudo -E -u www-data php occ maintenance:repair

Verwenden Sie maintenance:repairdiese Methode erst nach der Fehleranalyse. Sie ersetzt nicht die Behebung fehlerhafter Anmeldeinformationen, einer angehaltenen Datenbank oder einer tatsächlich inkompatiblen Laufzeitumgebung. Wenn occ upgradeeine bestimmte SQL-Migration fehlschlägt, speichern Sie die genaue Ausnahme und suchen Sie nach einer versionsspezifischen Lösung oder stellen Sie das vollständige, passende Backup wieder her, anstatt mit manuellem DDL zu experimentieren.

Schemawarnungen sollten erst nach einem erfolgreichen Upgrade behandelt werden.

Manche Migrationen werden absichtlich verzögert. Auf einer laufenden Instanz kann die Administratorübersicht nach optionalen Spalten, Indizes oder Primärschlüsseln fragen. Die folgenden Befehle bieten eine Testvorschau, sofern sie von der jeweiligen Version unterstützt werden:

sudo -E -u www-data php occ db:add-missing-indices --dry-run
sudo -E -u www-data php occ db:add-missing-columns --dry-run
sudo -E -u www-data php occ db:add-missing-primary-keys --dry-run

Führen Sie den entsprechenden Befehl --dry-runnur dann aus, wenn das protokollierte Problem oder die administrative Prüfung dies erfordert und die vorgeschlagene Änderung geprüft wurde. Diese Wartungsarbeiten können bei großen Datenbanken einige Zeit in Anspruch nehmen. Nextcloud 35 dokumentiert dies zusätzlich db:schema:check; gehen Sie nicht davon aus, dass es in älteren Versionen vorhanden ist. Informationen zum versionsspezifischen Verhalten finden Sie in der Datenbankbefehlsreferenz .

Wiederherstellung prüfen und Zugriff wiederherstellen

  1. Wiederholen Sie den Vorgang sudo -E -u www-data php occ status. Stellen Sie sicher, dass die installierte Version mit der gewünschten Version übereinstimmt, kein Upgrade erforderlich ist und keine neue schwerwiegende SQL-Ausnahme auftritt.
  2. Wenn der Wartungsmodus noch aktiviert ist und das Upgrade erfolgreich abgeschlossen wurde , deaktivieren Sie ihn mit sudo -E -u www-data php occ maintenance:mode --off.
  3. Öffnen Sie die WebGUI, melden Sie sich an, listen Sie die Dateien auf und führen Sie einen kleinen autorisierten Upload und Download durch. Achten Sie nextcloud.logwährend dieser Prüfungen auf neue Datenbankausnahmen.
  4. Setzen Sie die geplanten Jobs und die Client-Synchronisierung fort und überprüfen Sie anschließend die Administrationseinstellungen auf verbleibende Datenbankwarnungen.

Tritt derselbe Datenbankfehler erneut auf, stoppen Sie wiederholte Migrationen und erfassen Sie die Anforderungs-ID, den SQLSTATE-Text, das Datenbankserverprotokoll, das Versionspaar und die fehlerhafte occAusgabe. Anhand dieser Informationen lässt sich feststellen, ob das verbleibende Problem auf Verbindungsprobleme, inkompatible Software oder eine bestimmte fehlgeschlagene Migration zurückzuführen ist. Eine erfolgreiche Anmeldung allein beweist nicht, dass alle Hintergrundprozesse und Datenbankabfragen funktionieren.

Einen Kommentar hinterlassen

Nextcloud-Daten auf ein externes Laufwerk verschieben, ohne den Speicherplatz zu beschädigen

Nextcloud-Daten auf ein externes Laufwerk verschieben, ohne den Speicherplatz zu beschädigen

Sicheres Verschieben eines Linux Nextcloud-Datenverzeichnisses auf ein externes Laufwerk mithilfe einer persistenten UUID-Einbindung, des Wartungsmodus, einer verifizierten Kopie und des Symlinks des ursprünglichen Pfads.

Nextcloud-Datenbankfehler nach einem Update: Was Sie zuerst überprüfen sollten

Stellen Sie den Nextcloud-Zugriff nach einem Update wieder her, indem Sie SQL-Fehler diagnostizieren, die Datenbankverbindung überprüfen und unterbrochene Migrationen sicher abschließen.

Vergessenes Nextcloud-Admin-Passwort mit OCC zurücksetzen

Verwenden Sie den OCC-Befehl von Nextcloud, um ein Administratorpasswort über die Server-Shell zurückzusetzen. Hinweise zu Benutzernamen, Berechtigungen und externen Anmeldeanbietern finden Sie hier.

Fügen Sie den HSTS-Header am HTTPS-Endpunkt für Nextcloud hinzu.

Beheben Sie die HSTS-Warnung von Nextcloud, indem Sie den Header bei Apache, NGINX oder Ihrem TLS-Proxy setzen und anschließend die öffentliche HTTPS-Antwort sicher überprüfen.

Fehlerbehebung bei Nextcloud-App-Installationen, die keine Internetverbindung melden

Fehlerbehebung bei Nextcloud-App-Installationen, die keine Internetverbindung melden

Installationsfehler im App Store lassen sich auf DNS-, HTTPS-, Proxy-, TLS- oder Konfigurationsprobleme des Nextcloud-Servers selbst zurückführen.

CPU-Spitzen in der Nextcloud-Vorschau durch eine geplante Warteschlange zähmen

Verlagern Sie die Bearbeitung von Miniaturansichten auf einen kontrollierten Hintergrundzeitplan, reduzieren Sie ungenutzte Vorschaubildgrößen und überprüfen Sie die Warteschlange, ohne Ihren Nextcloud-Server zu überlasten.

Nextcloud Desktop Sync: Schritte nach dem Vorgang „Dateien werden verarbeitet“

Ermitteln Sie die Datei, die Ausschlussregel, das Verbindungsproblem oder den Clientdatenbankstatus, der die Nextcloud-Synchronisierung blockiert, und überprüfen Sie anschließend, ob Uploads und Downloads sicher durchgeführt werden können.

Beheben Sie die Nextcloud OPcache-Warnung, indem Sie den richtigen Grenzwert anpassen.

Ermitteln Sie das PHP OPcache-Limit, das die Nextcloud-Warnung auslöst, aktualisieren Sie die entsprechende Web-PHP-Konfiguration, starten Sie Nextcloud sicher neu und überprüfen Sie das Ergebnis.

Nextcloud mit CODE Docker verbinden: Einrichtung und Abwägungen

Nextcloud mit CODE Docker verbinden: Einrichtung und Abwägungen

Vergleichen Sie integrierten und Docker-basierten CODE und verbinden Sie dann Collabora Online über einen sicheren HTTPS-Reverse-Proxy mit Nextcloud.

Erstellen Sie einen ausfallsicheren Nextcloud-Cluster mit Galera

Planen Sie eine zuverlässige Nextcloud HA-Bereitstellung mit gemeinsam genutztem Speicher, Redis-Sperren, Quorum-fähigem MariaDB-Routing und praktischen Failover-Prüfungen.