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.
como fazer essa mudança no painel do phpmyadmin, ou na da pessoa hospedagem
Na aba SQL
ja tentei fazer isso porem aparece erro, e nao vai
Ai só o suporte da hospedagem conseguirá fazer
muito obg
Quando se executa o set global nas variáveis innodb, o file format muda até das bases já existentes?
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.
Boa tarde,
Como fazer isso via phpMyAdmin???
Obrigado
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.
Fez a alteração? Estou com a mesma dúvida, não sei se rodo os set global.
como fazer isso via phpmyadmin???