Update to next cloud 21.0.2 has get an error

Thanks @bb77 , @Derkades
adding command: ['--innodb_read_only_compressed=OFF'] solved it and i will definitely specify major versions in docker-compose from now on!

2 Likes

The full explanation is in this MariaDB KB article:

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.

3 Likes

I ran into the same issue in my homelab running nextcloud with latest and MariaDB with latest. I know its stupid to use latest and just upgrade blindly but its not a critical system for me. I have now defined versions in the docker-compose file.

I went back to 10.5.11 for MariaDB. Ran the repair command, added the phone region setting and then turned of maintenance mode. Seems to work fine for me now.

Will have to use my good friend google and try to figure out how one should upgrade containers. Preferrably in way where you can easily revert everything. I feel like everytime I do it sometime can break and never work properly again. If it were a VM I could easily snapshot, but with docker containers im not sure how it should be done.

Thank a lot! Work for me: Docker NC: 22.0.0 + MARIADB: 1:10.6.3+maria~focal

version: ‘2’

services:
db:
image: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW –innodb-read-only-compressed=OFF
volumes:
- xx:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=xx
- MYSQL_PASSWORD=xx
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud

1 Like

This fixed it for me!
–innodb-read-only-compressed=OFF
Do I know why? NO!
Does it matter? eeeeeee

I have updated to nextcloud 21 and all worked well,
but some time later i cannot login and do anything,
i looked in my logs and see the same error as in this post,
but for me there was a very simple fix

you must convert the database tables to dynamic tables because otherwise nextcloud cannot write because the are read only,
and because nextcloud has very much tables (that’s my opinion)
there is a bash script for it, you can find it below

Very much thanks to lxadm.com for writing the script, here it is
https://lxadm.com/MySQL:_changing_ROW_FORMAT_to_DYNAMIC_or_COMPRESSED
it will just convert the tables in seconds and then without restart my nextcloud was working again

I hope this also works for you
Best Regards
Jurian Post

2 Likes

but this also works for me
(after searching some time to the config file)
in my case it was /etc/mysql/mariadb.conf.d/50-server.cnf
gek

After that it also works great

This fixed my instance as well. Thanks for posting

That worked for me as well. Thanks.

I still have the issue, eventhough i’ve got that set