Jag uppgraderade OpenBSD 6.9 till 7.0 igår.
Det gav MariaDB-uppgradering:10.5 till 10.6.
Jag kollade my.cnf
förändras och det verkade okej.
Ändå hittades problem på en NextCloud-server som använder MariaDB på OpenBSD.
Det som hände var misslyckandet med att uppdatera paketet.
Jag ansluter till NextCloud-servern med webbläsare. Appens instrumentpanel fanns inte, och uppdateraren väntade på att startas istället. Det betydde pkg_add -u
hade misslyckats med att uppdatera NextCloud. Genom att klicka på startknappen på sidan visade det sig att något undantag hade hänt.
Jag läste nextcloud.log
i servern och fick:
"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,
När det gäller COMPRESSED
radformat, MariaDB är på väg att låta det vara skrivskyddat genom att "ta bort skrivstöd och avskaffa funktionen".
De introducerade innodb_read_only_compressed¶
alternativ vid 10.6.0 som var ON
som standard.
Det var därför det misslyckades att uppdatera NextCloud (från 21.0.4) till 21.0.5 på OpenBSD 7.0. Det berodde inte på OS eller appversion utan kompatibiliteten med MariaDB vars version är större än eller lika med 10.6.0.
Det finns ett öppet problem relaterat till det i NextCloud-repo.
Tja, jag redigerade /etc/my.cnf
tillfälligt för att lösa problemet:
[mysqld]
(...)
+ innodb_read_only_compressed = 0
Dessutom hittade jag inte hur man ställer in det på en specifik databas eller en tabell och ens möjligheten😅
Jag startade om mysqld
i servern och provade uppdateringsprogrammet på webbsidan igen. Det var trots allt helt lyckat.
Jag uppskattade MariaDB-dokumentationen och flera inlägg som Github-frågor och bloggar. De hjälpte mig mycket.