Atualizei para o mysql 5.6 a partir do 5.5 e agora meus logs estão repletos de mensagens na inicialização
Encontrei uma solução possível aqui, mas não parece oficial. http://forums.mysql.com/read.php?22,578559,579891#msg-579891
2013-12-06 21:08:00 7f87b1d26700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
2013-12-06 21:08:00 7f87b1d26700 InnoDB: Recalculation of persistent statistics requested for table "drupal"."sessions" but the required persistent statistics storage is not present or is corrupted. Using transient stats instead.
2013-12-06 21:08:07 7f903c09c700 InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
Alguma solução oficial ou correções de 100%?
mysql_upgrade -u root -p --force && systemctl restart mysqld
atualizações mysql esquema e todos os dbs, resolver esta questãoRespostas:
Eu já resolvi esse problema em: Não é possível abrir a tabela mysql / innodb_index_stats
Essas tabelas são criadas para você quando você instala o MySQL 5.6. No entanto, a atualização do MySQL 5.5 não invoca a criação dessas tabelas. Aqui estão os scripts para criá-los manualmente:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
ALTERNATIVO
Outra solução alternativa seria criar o script a partir de uma instância do MySQL 5.6.
Etapa 01 : Vá para um servidor de banco de dados executando o MySQL 5.6 ou instale o MySQL 5.6 em uma máquina de teste.
Etapa 02 : mysqldump essas 5 tabelas em um arquivo de texto
Em seguida, você pode executar
InnoDB_MySQL_Tables.sql
em qualquer servidor DB executando o MySQL 5.5 antes de atualizar.fonte
cat /usr/share/mysql/mysql_system_tables.sql | mysql -uroot -p mysql
ibdata1
arquivo. O MySQL não recriou essas tabelas na inicialização e eu tive que mover manualmente os arquivos que representam as tabelas para fora do diretório de dados do MySQL, a fim de usar asCREATE
instruções acima (DROP TABLE
não funcionou).A resposta de Rolando funcionou para mim com algumas adições. Eu tive o mesmo problema, com essas 5 tabelas exibidas via SHOW TABLES, mas SELECT ou outras operações na tabela resultaram na tabela não encontrada.
Para resolver o problema, usando a resposta de Rolando, eu precisava:
DROP TABLE <tablename>
- todas as 5 mesasNo sistema de arquivos, exclua os arquivos .ibd restantes (os arquivos .frm foram removidos por
DROP TABLE
)Então parei e iniciei a instância do mysqld (não sei se era necessário - fiquei feliz)
As
CREATE TABLE
declarações fornecidas por Rolando foram executadas sem problemas.fonte
DROP TABLE <tablename>
, ainda recebi aERROR 1051 (42S02): Unknown table '...'
mensagem de erro, mas pelo menos o arquivo .frm desapareceu até então.