MariaDB 10.6.0 compressed row_format depreciation

It seems with the release of MariaDB 10.6.0 today, that by default any table with a row_format of compressed is accessed as read-only (which can be temporarily bypassed with --skip-innodb-read-only-compressed). This is their first step in removing the feature entirely.

I was wondering if nextcloud plan to add an occ db (or occ maintenance or similar) option to let users modify their databases away from compressed row format (maybe to dynamic), so they can continue using nextcloud without issue when upgrading to mariadb 10.6.0 ?

1 Like

Yes … a very good hint.

I did today the upgrade to mariadb 10.6 on Test - Server. This is the result →

Exception\DriverException",“Message”:“An exception occurred while executing ‘UPDATE oc_authtoken SET last_check = ?, last_activity = ? WHERE id = ?’ with params [1623184941, 1623184941, 5]:\n\nSQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.”,“Code”:0,“Trace”:[{“file”:"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php",“line”:169,“function”:“convertException”,“class”:“Doctrine\DBAL\Driver\AbstractMySQLDriver”,“type”:"->"},{"

Same issue here.
My MariaDB docker image was upgraded to 10.6
reverting back to 10.5 did resolve the issue for now

Has anyone any idea how to resolve the issue with MariaDB 10.6
without downgrading?

Found solution:
Database Incompatibility with MariaDB 10.6.0 · Issue #1492 · nextcloud/docker · GitHub resolved this issue for me.

1 Like

Until you change your rows to another format, you can use this option in mysqld:


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 to OFF to make the tables writable.