Včera jsem upgradoval OpenBSD 6.9 na 7.0.
Přinesl upgrade MariaDB:10,5 až 10,6.
Zkontroloval jsem my.cnf
změnit a zdálo se to v pořádku.
Přesto byly nalezeny potíže na serveru NextCloud pomocí MariaDB na OpenBSD.
Stalo se selhání aktualizace balíčku.
Připojil jsem se k serveru NextCloud pomocí webového prohlížeče. Nebyl tam řídicí panel aplikace a místo toho čekal na spuštění aktualizátor. Znamenalo to pkg_add -u
se nepodařilo aktualizovat NextCloud. Kliknutí na tlačítko Start na stránce skončilo zobrazením nějaké výjimky.
Přečetl jsem nextcloud.log
na serveru a dostal:
"level":3,
(...)
"Exception":"Doctrine\\DBAL\\Exception\\DriverException",
"Message":"An exception occurred while executing a query:
SQLSTATE[HY000]:
General error:
4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.","Code":4047,
Pokud jde o COMPRESSED
řádkový formát, MariaDB je na cestě nechat jej pouze pro čtení "odstraněním podpory zápisu a zavržením funkce".
Představili innodb_read_only_compressed¶
možnost ve verzi 10.6.0, která byla ON
ve výchozím nastavení.
To byl důvod, proč aktualizace NextCloud (z 21.0.4) na 21.0.5 na OpenBSD 7.0 selhala. Nebylo to kvůli verzi operačního systému nebo aplikace, ale kompatibilitě s MariaDB, jejíž verze je větší nebo rovna 10.6.0.
V úložišti NextCloud je s tím související otevřený problém.
No, upravil jsem /etc/my.cnf
dočasně k vyřešení problému:
[mysqld]
(...)
+ innodb_read_only_compressed = 0
Kromě toho jsem nenašel, jak to nastavit na konkrétní databázi nebo tabulce a dokonce ani možnost😅
Restartoval jsem mysqld
na serveru a znovu zkusili aktualizaci na webové stránce. Koneckonců, bylo to úplně úspěšné.
Ocenil jsem dokumentaci MariaDB a několik příspěvků, jako jsou problémy a blogy Github. Hodně mi pomohli.