Skip to main content


The important message is InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.

This is something with your system or the database. A quick search returned this here:
https://dba.stackexchange.com/questions/256427/unable-to-create-tables-with-row-format-compressed
@Michael Vogel yes, been there too, no clue what to do. :-(

not using compressed, is that possible?
@Michael Vogel oh and Friendica gives me a WSoD, but that might be some other reason, due to this problem I was now also forced to upgrade PHP to php8. 😢
never ever execute the postupdate command when the update hasn't finished.

Please execute the SQL commands from the "dryrun" line by line in the MySQL console and report the errors.
@Michael Vogel all I get is:
ERROR 4047 (HY000): InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
@Michael Vogel I am considering to restore a backup from a few hours ago.
ariaDB [friendica]> SELECT NAME, ROW_FORMAT
-> FROM information_schema.INNODB_SYS_TABLES
-> WHERE ROW_FORMAT IN('Redundant', 'Compact')
-> AND NAME NOT IN('SYS_DATAFILES', 'SYS_FOREIGN', 'SYS_FOREIGN_COLS', 'SYS_TABLESPACES', 'SYS_VIRTUAL', 'SYS_ZIP_DICT', 'SYS_ZIP_DICT_COLS');
Empty set (0.010 sec)

not here
It is not showing the outcome like you posted. Then again, I am not on a dev version.
@Hans Wolters
read this again:
and got no output, when I replace Compact with Dynamic in that query I get some list:

😜
Edit not working, last sentence is wrong.
I am back on stable and the database backup were both stable when I did the backup.
I am back with the restored database from stable branch, restored together with the webroot.

As I wrote before I had to upgrade PHP, which is now 8.0.9 and was 7.x before, also mariadb was upgraded. So it is complicated.
ah, I stopped the webserver, mariadb and php-fpm for now, as long as it is not working anyway.
This "InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE" is a problem with the database server. And I really don't know how to fix it. Best would be to ask in some external MariaDB help forum.
@Michael Vogel ok, so I need to figure out what changed in the latest #MariaDB version compared to the one before. Any tip which forum to use?
@Michael Vogel without irony, thanks so much for your help.
From what I recall in the past this might be due to being read/write. Compressed tables are (afaik) read only
This does sound like a performance hit. It seems to be uncompressed and compressed again. So only if hd space is low this might be an option. Speeding this up might mean you need to drop and read a table often to make sure the buffer is ok.
With InnoDB page compression, compressed pages are immediately decompressed after being read from the tablespace file, and only uncompressed pages are stored in the buffer pool. In contrast, with InnoDB's COMPRESSED row format, compressed pages are decompressed immediately after they are read from the tablespace file, and both the uncompressed and compressed pages are stored in the buffer pool. This means that the COMPRESSED row format uses more space in the buffer pool than InnoDB page compression does.

https://mariadb.com/kb/en/innodb-page-compression/
@Hans Wolters no idea about compressed, thought that Friendica uses this, I think I did not set this.
Compressed is no problem, I'm using it on my machines.
From what I read it might give you problems since it stores more data.
Fehler 4047 beim Update der Datenbank aufgetreten
InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.

I do hope they are not using it, it would be a penalty. The error you posted show you are using a compressed format. Did you create the database with defaults like this?
I will give up for now, need to get some sleep, copying the backup over to the server.
OK, I have those tables left:

+-----------------------------------------+------------+
| NAME                                    | ROW_FORMAT |
+-----------------------------------------+------------+
| ylms_friendica/contact@002drelation     | Compressed |
| ylms_friendica/delayed@002dpost         | Compressed |
| ylms_friendica/diaspora@002dinteraction | Compressed |
| ylms_friendica/gserver@002dtag          | Compressed |
| ylms_friendica/inbox@002dstatus         | Compressed |
| ylms_friendica/item@002duri             | Compressed |
| ylms_friendica/notify@002dthreads       | Compressed |
| ylms_friendica/openwebauth@002dtoken    | Compressed |
+-----------------------------------------+------------+


For some reason I can not convert them. Anyone knows what the @ tables are and how to get them converted to Dynamic?
You have to address these tables with backticks:
`contact-relation`
@Michael Vogel and with a - instead of the @002d, maybe that is clear for you, but not for a N00b like me. :-P