Você esta atualizando o Moodle e se depara com a seguinte mensagem:

Seu banco de dados possui tabelas usando Antelope como formato de arquivo. Recomenda-se converter as tabelas para o formato de arquivo Barracuda. Consulte a documentação Administração via linha de comandopara detalhes de uma ferramenta para converter tabelas InnoDB para Barracuda.

Igual a imagem:

Isso acontece porque seu MySql possui tabelas que são salvas no formato Antilope

O formato de arquivo na versão Built-In do InnoDB é chamado de Antelope, enquanto que o novo formato foi batizado como Barracuda. O formato Antelope é um arquivo não nomeado internamente, no qual as tabelas utilizam o formato de linha COMPACT ou REDUNDANT, possibilitando que o InnoDB armazene 768 bytes para colunas com tipos de dados variáveis (VARCHAR, VARBINARY, TEXT e BLOB) uma entrada no índice B-Tree ou chave primária da tabela. Já o novo formato, o Barracuda, é utilizado para prover todos os novos recursos que o InnoDB Plugin entrega ao mercado e ao usuário final, e seu formato de linha pode ser DYNAMIC ou COMPRESSED.
Fonte Imaster

É muito fácil de resolver isso. No terminal do Linux digite:

php admin/cli/mysql_compressed_rows.php --list

A saída será algo do tipo:

mdl_data                     Compact     (needs fixing)
mdl_data_fields              Compact     (needs fixing)
mdl_lti                      Compact     (needs fixing)
mdl_user                     Compact     (needs fixing)
mdl_user_info_field          Compact     (needs fixing)

Na primeira coluna temos as tabelas do banco de dados que estão no formato Antelope. Para converter estas tabelas para Barracuda execute:

php admin/cli/mysql_compressed_rows.php --fix

Se tudo der certo a mensagem abaixo irá aparecer:

mdl_data                      ... Compressed
mdl_data_fields               ... Compressed
mdl_lti                       ... Compressed
mdl_user                      ... Compressed
mdl_user_info_field           ... Compressed

Se der erro, a mensagem será:

Cannot enable GLOBAL innodb_file_per_table setting, use --showsql option and execute the statements manually.!!! Erro ao gravar na base de dados !!!

Neste caso execute:

php admin/cli/mysql_compressed_rows.php --showsql

E uma sequencia de SQL será gerada, como abaixo:

USE moodle;
SET SESSION sql_mode=STRICT_ALL_TABLES;
SET GLOBAL  innodb_file_per_table=1;
SET GLOBAL  innodb_large_prefix=1;
SET GLOBAL  innodb_file_format=Barracuda;

Execute estes SQL no seu administrador de banco de dados e pronto.

Gostou? Não esqueça de curtir!

11 comentários

Deixe uma resposta

  1. como fazer essa mudança no painel do phpmyadmin, ou na da pessoa hospedagem

     
  2. ja tentei fazer isso porem aparece erro, e nao vai

     
  3. Ai só o suporte da hospedagem conseguirá fazer

     
  4. Quando se executa o set global nas variáveis innodb, o file format muda até das bases já existentes?

     
  5. Excelente. Depois de configurar o my.ini conforme a documentação oficial do Moodle, não funcionou porque eles esqueceram que para executar os comandos SET, primeiro deve-se abrir o banco do Moodle com USE, detalhe esse que você apresentou e resolveu o meu problema.

     
  6. Boa tarde,

    Como fazer isso via phpMyAdmin???

    Obrigado

     
  7. Olá boa noite, eu gostaria de saber se eu alterar o innodb_file_format que atualmente é Antelope no meu servidor de produção para Barracuda, se os bancos que já estão atualmente em funcionamento serão afetados de alguma forma. Pois preciso instalar o banco do Moodle nesse servidor MySQL 5.5.55-0 deb

    Agradeço muito se puder me responder.

     
  8. Fez a alteração? Estou com a mesma dúvida, não sei se rodo os set global.

     
  9. como fazer isso via phpmyadmin???