MariaDB
 sql >> Database >  >> RDS >> MariaDB

MariaDB 10.6 e NextCloud:COMPRESSED Row è di sola lettura per impostazione predefinita

Ieri ho aggiornato OpenBSD 6.9 a 7.0.
Ha portato l'aggiornamento di MariaDB:da 10.5 a 10.6.
Ho controllato my.cnf cambiare e sembrava tutto a posto.
Tuttavia, è stato riscontrato un problema su un server NextCloud che utilizza MariaDB su OpenBSD.

Quello che è successo è stato il fallimento dell'aggiornamento del pacchetto.
Mi sono connesso al server NextCloud con il browser web. Non c'era la dashboard dell'app e invece l'aggiornamento ha atteso l'avvio. Significava pkg_add -u non era riuscito ad aggiornare NextCloud. Facendo clic sul pulsante di avvio sulla pagina si è scoperto che si era verificata un'eccezione.

Ho letto nextcloud.log nel server e ho ottenuto:

"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,

Quanto a COMPRESSED formato riga, MariaDB sta per renderlo di sola lettura "rimuovendo il supporto per la scrittura e deprecando la funzione".
Hanno introdotto innodb_read_only_compressed¶ opzione a 10.6.0 che era ON per impostazione predefinita.

È per questo che l'aggiornamento di NextCloud (da 21.0.4) a 21.0.5 su OpenBSD 7.0 non è riuscito. Non era a causa del sistema operativo o della versione dell'app ma della compatibilità con MariaDB la cui versione è maggiore o uguale a 10.6.0.
C'è un problema aperto ad esso correlato nel repository NextCloud.

Bene, ho modificato /etc/my.cnf temporaneamente per risolvere il problema:

  [mysqld]
  (...)
+ innodb_read_only_compressed = 0

Inoltre, non ho trovato come impostarlo su un database o una tabella specifici e nemmeno la possibilità😅

Ho riavviato mysqld nel server e ho provato di nuovo l'aggiornamento sulla pagina web. Dopotutto, è stato un successo totale.

Ho apprezzato la documentazione di MariaDB e diversi post come problemi e blog su Github. Mi hanno aiutato molto.