sql >> Databáze >  >> RDS >> MariaDB

MariaDB 10.6 a NextCloud:COMPRESSED Row je ve výchozím nastavení pouze pro čtení

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.


  1. merge update oracle nedokáže získat stabilní sadu řádků

  2. Přímý přístup k SQL Server Database v Xamarin.Forms

  3. Sledování možností kurzoru

  4. Jak vytvořit histogram v MySQL?