如何修复 Nextcloud 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE
问题:
尝试 maintenance:repair Nextcloud 实例时,例如在 utf8mb4 升级期间,你看到类似这样的错误消息
innodb_error.txt
ERROR: 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.解决方案
你需要关闭 innodb-read-only-compressed。我通过使用以下命令启动 MySQL docker 来执行此操作
mysql_command.txt
--skip-innodb-read-only-compressed对我有效的完整命令行:
mysql_full_flags.txt
--transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed完整 docker-compose.yml nextcloud 部分:
docker_compose_nextcloud.yml
nextcloud-db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
restart: always
volumes:
- ./nextcloud-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}Check out similar posts by category:
Cloud, Databases, Technologies
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow