Depois de muitas tentativas, consegui reiniciar um banco de dados muito corrompido adicionando innodb_force_recovery = 6 ao meu.ini
No entanto, agora, não consigo iniciar o servidor de forma alguma, a menos que essa linha esteja permanentemente no arquivo ini. Isso não parece certo.
Há algo que eu deva fazer depois de recuperar um banco de dados dessa maneira, além de fazer backup e restaurar em um novo?
No final das contas não há como evitar isso, é o comportamento esperado:
inndob_force_recovery = 6 não recupera suas tabelas como alguém poderia ser levado a pensar. Ele apenas permite que o mysqld inicie apesar das tabelas corrompidas.
as tabelas também são tornadas somente leitura por esse "modo de emergência", tornando todo o esquema inutilizável para produção.
Basicamente, ele aciona uma inicialização em "modo seguro" do mysqld apenas para permitir exportar o banco de dados, recriar novas tabelas e reimportar, e acabei fazendo exatamente isso.