В общем, при переходе from 8.0.29 to 8.0.30
mysql грузиться перестает.
2022-07-29T18:35:39.687286Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-07-29T18:35:40.295149Z 1 [ERROR] [MY-013857] [InnoDB] The redo log file ./#innodb_redo/#ib_redo8 is smaller than 65536 bytes, which indicates it was not generated by InnoDB or become corrupted. Please restore the correct file.
2022-07-29T18:35:40.295224Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2022-07-29T18:35:40.715041Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2022-07-29T18:35:40.715374Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2022-07-29T18:35:40.715411Z 0 [ERROR] [MY-010119] [Server] Aborting
Если кому надо, вот решение:
Решение гениальное по своей тупизне...
Абажаю.
Чтобы совсем было весело, программа написана с ошибкой...
Вот исправленная:
for x in *ib_redo*;
do
s=$(stat --format="%s" $x);
# this assumes innodb_page_size = 16K
((B=1<<14));
# round up to multiple of B
((ns=(s+B-1)/B*B ));
# number of bytes missing
((delta=ns-s));
if ( (0<$delta) );
then
echo "Missing $delta bytes in $x";
# make a backup, in case I've messed up dd call
cp $x $x.backup;
dd if=/dev/zero bs=1 count=$delta >> $x;
fi;
done
Или вот так:
truncate -s 48M /var/lib/mysql/#innodb_redo/#ib_redo*