Nextcloud – Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in big int.

Heute habe ich die folgende Fehlermeldung bei meiner Nextcloud bekommen:

Es gibt einige Warnungen zu Ihrer Systemkonfiguration. Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in big int. Aufgrund der Tatsache, dass das Ändern von Spaltentypen bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch geändert.

Durch Ausführen von „occ db:convert-filecache-bigint“ können diese ausstehenden Änderungen manuell übernommen werden. Diese Operation muss ausgeführt werden, während die Instanz offline ist. Weitere Einzelheiten finden Sie auf der zugehörigen Dokumentationsseite.

Die Lösung ist schnell und einfach:

# Wechsel in das Nextcloud-Verzeichnis
cd /var/www/html/nextcloud/

# Aktivieren des Nextclud-Maintenance Modus
sudo -u www-data php occ maintenance:mode --on

# Ausführen des Konvertierungsbefehls
sudo -u www-data php occ db:convert-filecache-bigint

Es kommt sofort die folgende Meldung, die mit „Ja“ zu bestätigen ist.
Bei meiner Nextcloud-Instanz war die Konvertierung sofort erledigt, es gab keine Wartezeiten.

Nextcloud is in maintenance mode - no apps have been loaded

Following columns will be updated:

* mounts.storage_id
* mounts.root_id
* mounts.mount_id

This can take up to hours, depending on the number of files in your instance!
Continue with the conversion (y/n)? [n] y

Und zum Schluss nicht vergessen den Wartungsmodus zu deaktivieren.

# Deaktivieren des Nextclud-Maintenance Modus
sudo -u www-data php occ maintenance:mode --off

Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Nextcloud – Enabling MySQL 4-byte support

MariaDB - 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.
https://docs.nextcloud.com/server/16/admin_manual/configuration_database/mysql_4byte_support.html

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

MariaDB - 4-byte support
MariaDB – 4-byte support

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


https://help.nextcloud.com/t/solved-syntax-error-or-access-violation-1071-specified-key-was-too-long-max-key-length-is-767-bytes/34740

Leider hing meine Nextcloud-Instanz nach der Anpassung im Maintenance-Mode fest:

Maintenance Mode
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:
https://docs.nextcloud.com/server/16/admin_manual/configuration_server/occ_command.html#

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.
https://docs.nextcloud.com/server/15/admin_manual/configuration_database/mysql_4byte_support.html

Raspberry Pi – Web- und Datenbankserverinstallation

Die Installation eines Web- und Datenbankservers ist, wie bei anderen Linux-Distributionen, sehr einfach. Die Pakete befinden sich in den Repositories und können deshalb alle über die Shell installiert werden.

Bevor es an die Installation geht, führt erst mal ein Update durch:

sudo aptitude update
sudo aptitude dist-upgrade

Nachdem euer System nun auf dem aktuellsten Stand ist, muss noch eine Kleinigkeit für den Webserver Apache vorbereitet werden. Apache benötigt zwingend einen eigenen Benutzer und eine Gruppe. Das wird mit den folgenden zwei Befehlen erledigt:

sudo groupadd www-data
sudo usermod -a -G www-data www-data

Der Benutzer und die Gruppe sollten nun angelegt sein und ihr könnt die Pakete installieren. Mit dem Befehl werden gleich mehrere Pakete installiert

  • Apache Webserver
  • MySQL-Datenbankserver
  • PHP5
  • PHPMyAdmin zur Verwaltung der Datenbanken

sudo aptitude install apache2 mysql-server mysql-client php5-mysql php5 phpmyadmin

Während der Installation werdet ihr aufgefordert Passwörter zu vergeben. Diese solltet ihr euch gut merken, da ihr die zur Verwaltung von den Datenbanken benötigt.

Nach erfolgreicher Installation könnt ihr

Wenn ihr remote auf den Raspberry Pi zugreifen möchtet, dann ersetzt „localhost“ durch die IP-Adresse des Rechners. Falls ihr die Adresse nicht wisst, dann könnt ihr euch die mit dem Befehl anzeigen lassen:

ipconfig