NossCo

I Make Computer Beep Boop Beep

Nach dem letzten Container Update der Nextlcoud App, war bei meiner Instanz kein Einloggen mehr möglich. Es begrüßte lediglich eine "Interner Severfehler" Seite nach dem klick auf Anmelden.

Ein wenig recherche und das setzen von Loglevel 0 in der Nextcloud Config ergaben einen merkwürdigen Fehler in der Datenbank.

4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE

Um den Fehler zu beheben (und gleichzeitig die 4 Byte Unterstützung zu aktivieren) geht man folgendermaßen vor:

In der docker-compose folgende Zeile zur DB hinzufügen:

command: --innodb-read-only-compressed=OFF

Und dann :

DB_CONTAINER=next-devmydomaincom_db_1
APP_CONTAINER=next-devmydomaincom_app_1
MYSQL_ROOT_PASSWORD=***mysecret_pass***
docker exec $DB_CONTAINER mysql nextcloud -p$MYSQL_ROOT_PASSWORD -e "show variables like 'innodb_file_format';"
docker exec --user www-data $APP_CONTAINER php occ maintenance:mode --on
docker exec $DB_CONTAINER mysql nextcloud -p$MYSQL_ROOT_PASSWORD -e "ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
docker exec --user www-data $APP_CONTAINER php occ config:system:set mysql.utf8mb4 --type boolean --value="true"
docker exec --user www-data $APP_CONTAINER php occ maintenance:repair --include-expensive 
docker exec --user www-data $APP_CONTAINER php occ maintenance:mode --off

Danach lief die Nextcloud wieder problemlos.