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.

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???