InnoDB: Failing assertion: !page || (ibool)!!page_is_comp(page) == dict_table_is_comp(index->table)
服务器异常断电后,导致Mysql容器一直重启,报错如下:
2022-02-24T06:42:18.353343240Z 2022-02-24T06:42:18.350981Z 0 [Note] mysqld (mysqld 5.7.27) starting as process 1 ...
2022-02-24T06:42:18.354949264Z 2022-02-24T06:42:18.354769Z 0 [Note] InnoDB: PUNCH HOLE support available
2022-02-24T06:42:18.354976837Z 2022-02-24T06:42:18.354794Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2022-02-24T06:42:18.354985051Z 2022-02-24T06:42:18.354800Z 0 [Note] InnoDB: Uses event mutexes
2022-02-24T06:42:18.354992584Z 2022-02-24T06:42:18.354806Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2022-02-24T06:42:18.355004670Z 2022-02-24T06:42:18.354810Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2022-02-24T06:42:18.355016310Z 2022-02-24T06:42:18.354813Z 0 [Note] InnoDB: Using Linux native AIO
2022-02-24T06:42:18.355487593Z 2022-02-24T06:42:18.355337Z 0 [Note] InnoDB: Number of pools: 1
2022-02-24T06:42:18.355571095Z 2022-02-24T06:42:18.355481Z 0 [Note] InnoDB: Using CPU crc32 instructions
2022-02-24T06:42:18.357934401Z 2022-02-24T06:42:18.357783Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2022-02-24T06:42:18.368115209Z 2022-02-24T06:42:18.367955Z 0 [Note] InnoDB: Completed initialization of buffer pool
2022-02-24T06:42:18.371151693Z 2022-02-24T06:42:18.370950Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2022-02-24T06:42:18.383249677Z 2022-02-24T06:42:18.383095Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2022-02-24T06:42:18.384882503Z 2022-02-24T06:42:18.384728Z 0 [Note] InnoDB: Log scan progressed past the checkpoint lsn 71367246641
2022-02-24T06:42:18.492619423Z 2022-02-24T06:42:18.492450Z 0 [Note] InnoDB: Doing recovery: scanned up to log sequence number 71372489216
2022-02-24T06:42:18.562509616Z 2022-02-24T06:42:18.562332Z 0 [Note] InnoDB: Doing recovery: scanned up to log sequence number 71375885884
2022-02-24T06:42:18.563619393Z 2022-02-24T06:42:18.563440Z 0 [Note] InnoDB: Database was not shutdown normally!
2022-02-24T06:42:18.563646099Z 2022-02-24T06:42:18.563449Z 0 [Note] InnoDB: Starting crash recovery.
2022-02-24T06:42:18.593048474Z 2022-02-24T06:42:18.592896Z 0 [Note] InnoDB: Starting an apply batch of log records to the database...
2022-02-24T06:42:18.602590243Z InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 2022-02-24 06:42:18 0x7f022f397700 InnoDB: Assertion failure in thread 139647358957312 in file log0recv.cc line 1922
2022-02-24T06:42:18.602634433Z InnoDB: Failing assertion: !page || (ibool)!!page_is_comp(page) == dict_table_is_comp(index->table)
2022-02-24T06:42:18.602643816Z InnoDB: We intentionally generate a memory trap.
2022-02-24T06:42:18.602650729Z InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
2022-02-24T06:42:18.602658042Z InnoDB: If you get repeated assertion failures or crashes, even
2022-02-24T06:42:18.602664785Z InnoDB: immediately after the mysqld startup, there may be
2022-02-24T06:42:18.602671482Z InnoDB: corruption in the InnoDB tablespace. Please refer to
2022-02-24T06:42:18.602678315Z InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
2022-02-24T06:42:18.602685169Z InnoDB: about forcing recovery.
2022-02-24T06:42:18.602691752Z 06:42:18 UTC - mysqld got signal 6 ;
2022-02-24T06:42:18.602698528Z This could be because you hit a bug. It is also possible that this binary
2022-02-24T06:42:18.602705298Z or one of the libraries it was linked against is corrupt, improperly built,
2022-02-24T06:42:18.602712408Z or misconfigured. This error can also be caused by malfunctioning hardware.
2022-02-24T06:42:18.602719085Z Attempting to collect some information that could help diagnose the problem.
解决办法:
1. 在my.cnf中增加配置信息:innodb_force_recovery = 6
2. 重启数据库。数据库能临时运行起来。
3. 将库,表备份出来。
4. 恢复。