InnoDB não funciona no MySQL/MariaDB

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.

Total de Visualizações: 2.203