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.