sql >> Databasteknik >  >> RDS >> MariaDB

MariaDB 10.6 och NextCloud:COMPRESSED Row är skrivskyddad som standard

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.


  1. Vad är en frågeavvikare och hur man åtgärdar det

  2. Finns det en Oracle SQL-fråga som samlar flera rader till en rad?

  3. Hur man använder EXECUTE FORMAT ... ANVÄNDER i postgres-funktionen

  4. Hur man hittar pg_config sökväg