gestern ist mir leider ein kleiner Supergau passiert, als ich von NC 15.0.8 per Web Updater auf 16.0.1 updaten wollte. Der erste Teil des Updates lief durch (Backup, Download usw.). Der zweite Teil des Updates (âNextcloud wird auf Version 16.0.1 aktualisiertâ) bricht allerdings mit der folgenden Fehlermeldung ab:
Aktualisierung auf 16.0.1
Doctrine\DBAL\Exception\DriverException: An exception occurred while executing âCREATE TABLE oc_login_flow_v2 (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, timestamp BIGINT UNSIGNED NOT NULL, started SMALLINT UNSIGNED DEFAULT 0 NOT NULL, poll_token VARCHAR(255) NOT NULL, login_token VARCHAR(255) NOT NULL, public_key TEXT NOT NULL, private_key TEXT NOT NULL, client_name VARCHAR(255) NOT NULL, login_name VARCHAR(255) DEFAULT NULL, server VARCHAR(255) DEFAULT NULL, app_password VARCHAR(1024) DEFAULT NULL, UNIQUE INDEX poll_token (poll_token), UNIQUE INDEX login_token (login_token), INDEX timestamp (timestamp), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin ENGINE = InnoDB ROW_FORMAT = compressedâ: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
Detaillierte Protokollmeldungen
Das Update ist fehlgeschlagen. Bitte melden Sie dieses Problem an die Nextcloud Community.
Bin etwas verzweifelt, da ich keine Ahnung habe, was ich jetzt tun soll?! Ich wĂŒrde ja versuchen auf die 15.0.8 zurĂŒck zu gehen, aber irgend etwas wurde ja schon vor dem Abbruch mit der Datenbank gemacht. Oder den Fehler fixen (wie?). Oder neu installieren. Letzteres wĂ€re mir eigentlich am liebsten, aber ich brĂ€uchte die Daten, die mittlerweile in der Installation stecken, vor allem den KalenderâŠ
Kurz gesagt ich komme nicht weiter und wĂŒrde mich sehr ĂŒber hilfe freuen!
MariaDB 10 entspricht scheinbar MySQL 5.5 mit ein paar MySQL 5.6 Backports.
Du kannst versuchen, die Konfigurationen wie in dem Stackoverflow-Post beschrieben per phpMyAdmin zu setzen, ich gehe aber davon aus das du bei Shared Hosting nicht die notwendigen Rechte dafĂŒr hast.
Bleibt wohl nur beim Hoster anzufragen, ob sie die Einstellungen zentral setzen oder MariaDB aktualisieren können.
Mein Hoster bietet MySQL 5.7, da lassen sich aktuelle Nextcloud-Versionen problemlos installieren.
OK, danke! Habe jetzt mal den Provider angeschrieben. Mal sehen was er antwortet!
Könnte ich meine komplette Installation samt aller Daten zur Not auf einen neuen Server umziehen? Ich meine so âmittenâ in einem noch nicht abgeschlossenen Update?
Manche Provider erlauben auch bei shared-hosting Paketen die AusfĂŒhrung von Skripten mit der PHP_Funktion exec ĂŒber bestimmte PHP-Funktionen. Dann könnte es eventuell funktionieren, den Kalender mit dem Skript calcardbackup aus der bestehenden Datenbank zu extrahieren. Ob das bei jedem Provider klappt, weiĂ ich nicht, da die Umgebungen jeweils verschieden eingerichtet sind. Ich habe das allerdings gerade bei meinem Account bei all-inkl (privat) versucht und da hat es geklappt. Wichtig ist, dass du die no-fd-Branch von calcardbackup benutzt (sie kommt ohne file-descriptors aus, die zumindest bei meinem Hoster nicht funktionieren: GitHub - BernieO/calcardbackup at no-fd)
(das Repo auf GitHub ist veraltet. Bitte nur noch calcardbackup von codeberg benutzen)
Die folgende Vorgehensweise ist veraltet. Siehe das Edit vom 27.05.2021 am Ende dieses Beitrags.
Falls du das versuchen möchtest: 1. calcardbackup_no-fd in deinen Webspace hochladen (am Besten in das Verzeichnis cgi-bin, falls es existiert).
2. eine phpx-Datei mit folgendem Inhalt erstellen und irgendwo auf deinem Webserver ablegen (bei dem exec-Kommando den Pfad zu calcardbackup und zum Nextcloud-Installationsverzeichnis relativ zur phpx-Datei anpassen!). Wichtig ist, dass der Dateiname der phpx-Datei die Endung .phpx hat:
3. Die gerade erstellte phpx-Datei mithilfe eines Browsers ansurfen
Mit der Option -na werden nur die Kalender gesichert. Falls du auch AdressbĂŒcher sichern möchtest, einfach die Option Ă€ndern in -nc und das phpx-Skript noch einmal aufrufen.
EDIT 27.05.2021: diese Vorgehensweise ist unnötig kompliziert und veraltet, denn im calcardbackup-Repo bei codeberg ist mittlerweile das Skript calcardbackup_wrapper.php enthalten, das den ganzen Prozess vereinfacht. Im Abschnitt Kann ich das auch ohne Shell Zugang zu meinem Server benutzen? des README wird die Vorgehensweise genau beschrieben.
Danke sehr fĂŒr die ausfĂŒhrliche Antwort! Um ehrlich zu sein habe ich die Nextcloud Installation mittlerweile einfach gelöscht. Wirklich Mist aber nicht der Weltuntergang. NĂ€chstes Mal mache ich dann ein Backup vor jedem Update. Frage mich nebenbei allerdings auch, warum sĂ€mtliche Updates bei z.B. Wordpress seit Jahren problemlos durchlaufen und Nextcloud immer wieder Ărger macht. Vielleicht lasse ich NC noch ein paar Jahre reifen und schaue 2025 wieder reinâŠ