The full explanation is in this MariaDB KB article:
- Since MariaDB 10.1, an alternative (and usually superior) way to compress InnoDB tables is by using InnoDB Page Compression. See Comparison with the COMPRESSED Row Format.
- From MariaDB 10.6.0, tables that are of the
COMPRESSED
row format are read-only by default. This is the first step towards removing write support and deprecating the feature. Set the innodb_read_only_compressed variable toOFF
to make the tables writable.
If you have access to /etc/my.cnf.d/server.cnf
, you may temporarily mitigate the issue by adding a line innodb_read_only_compressed=OFF
to the section [mysqld]
.
However, this is a workaround rather that a solution. Tables MUST be migrated, should be migrated automatically by Nextcloud and hopefully will by a NC update soon. I think it is wise NOT to touch the table’s definition in order not to thwart the NC migration that hopefully comes prior to MariaDB’s next step against innodb-compressed-row-format.
Also note that there already is a bug report for this. A quote from a NC dev there: Nextcloud does NOT support MariaDB 10.6. The reason is the compressed row format. Either stick with MariaDB 10.5 or add --innodb-read-only-compressed=OFF
to make compressed tables writeable. #25436 is the issue to track progress. It’s on the roadmap. A solution requires a migration of the row format to something different. Don’t expect this for Nextcloud 22 / 23.