Neste tutorial explicaremos como corrigir o erro “Unknown storage engine InnoDB” apresentado no MySQL ou MariaDB.
Error: Unknown storage engine 'InnoDB' error: Corrupt
1. Primeiro passo:
Edite o arquivo /etc/my.cnf ou /etc/mysql/my.cnf (dependendo de seu sistema operacional) e verifique a existência da linha abaixo:
skip-innodb
Caso exista, basta comentar ou remover a linha.
#skip-innodb
Agora reinicie o MySQL:
service mysql restart
Ou
service mysqld restart
Caso o problema persista siga o segundo passo.
2. Segundo passo:
Ao verificar os logs do MySQL/MariaDB encontramos o seguinte erro:
InnoDB: Using Linux native AIO InnoDB: Warning: io_setup() failed with EAGAIN. Will make 5 attempts before giving up. InnoDB: Warning: io_setup() attempt 1 failed. InnoDB: Warning: io_setup() attempt 2 failed. InnoDB: Warning: io_setup() attempt 3 failed. InnoDB: Warning: io_setup() attempt 4 failed. InnoDB: Warning: io_setup() attempt 5 failed. InnoDB: Error: io_setup() failed with EAGAIN after 5 attempts. InnoDB: You can disable Linux Native AIO by setting innodb_use_native_aio = 0 in my.cnf InnoDB: Fatal error: cannot initialize AIO sub-system [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Para correção deste erro existem duas soluções:
– Primeira:
Edite o arquivo /etc/sysctl.conf e adicione a linha abaixo:
fs.aio-max-nr = 1048576
Atualize as configurações do sistema com o comando:
sysctl -p
Agora reinicie o MySQL:
service mysql restart
Ou
service mysqld restart
– Segunda:
Se ainda assim o InnoDB não funcionar, edite o arquivo /etc/my.cnf ou /etc/mysql/my.cnf e adicione a linha abaixo:
innodb_use_native_aio = 0
Agora reinicie o MySQL:
service mysql restart
Ou
service mysqld restart
Caso o problema ainda continue após executar todos os passos do tutorial, provavelmente os bancos de dados utilizando InnoDB estão realmente corrompidos.