Nextcloud - Enabling MySQL 4-byte support
Die Aktivierung des 4byte Supports in meiner MariaDB hat ein kleines Problem aufgeworfen.
Zuerst habe ich die offizielle Nextcloud-Anleitung befolgt, welche auch bis zum Repair-Befehl wunderbar funktioniert hat.
Aber anstatt die erforderlichen Änderungen in der Datenbank vorzunehmen wurden mir die folgenden Fehler ausgegeben:
_In AbstractMySQLDriver.php line 125:
An exception occurred while executing 'ALTER TABLE `oc_addressbooks` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;':
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
In PDOStatement.php line 143:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
In PDOStatement.php line 141:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes_
Nach ein wenig Suchen bin ich auf die folgende kurze Anleitung gestoßen, die bei mir geholfen hat:
$ sudo mysql -u root -p
MariaDB [(none)]> use nextcloud;
MariaDB [nextcloud]> set global innodb_large_prefix=on;
MariaDB [nextcloud]> set global innodb_file_format=Barracuda;
$ sudo -u www-data php occ maintenance:repair
Leider stoppte meine Nextcloud-Instanz nach der Anpassung im Maintenance-Mode:
Den Maintenance Mode kann man jedoch ganz einfach beenden, um Nextcloud wie gewohnt zu nutzen.
Zuerst einmal geht man in das Installationsverzeichnis von Nextcloud, z.B.
cd /var/www/html/nextcloud
dann beendet man den Maintenance Mode mit dem Befehl:
sudo -u www-data php occ maintenance:mode --off
Die vollständige Dokumentation der occ-Befehle gibt es hier:
Nach der Umstellung der Datenbank auf 4byte-Support ist unbedingt die Datensicherung eurer Nextcloud-Instanz zu prüfen. Im offiziellen Nextcloud Manual gibt es einen entsprechenden Hinweis dazu.
Codeberg
Dein Weg zur eigenen Nextcloud
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️