我从 5.5 升级到 mysql 5.6,现在我的日志在启动时到处都是这样的消息
我在这里找到了一个可能的解决方案,但它似乎并不正式。 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.
任何官方解决方案或 100% 修复?
我之前在:Cannot open table mysql/innodb_index_stats中解决了这个问题
这些表是在您安装 MySQL 5.6 时为您创建的。但是,从 MySQL 5.5 升级不会调用这些表的创建。以下是手动创建它们的脚本:
innodb_index_stats
innodb_table_stats
slave_master_info
slave_relay_log_info
slave_worker_info
选择
另一种解决方法是从 MySQL 5.6 实例创建脚本。
步骤 01:转到运行 MySQL 5.6 的数据库服务器,或在测试机器上安装 MySQL 5.6。
步骤02:mysqldump这5个表到一个文本文件
然后,您可以
InnoDB_MySQL_Tables.sql
在升级之前在任何运行 MySQL 5.5 的数据库服务器上运行。罗兰多的回答对我有用,还有一些补充。我遇到了同样的问题,这 5 个表通过 SHOW TABLES 显示,但是 SELECT 或对表的其他操作导致找不到表。
为了解决这个问题,使用 Rolando 的回答,我需要:
DROP TABLE <tablename>
-- 全部 5 个表在文件系统中,删除剩余的 .ibd 文件(.frm 文件被 删除
DROP TABLE
)然后我停止并启动了 mysqld 实例(不知道是否需要 - 让我很高兴)
罗兰多提供的
CREATE TABLE
陈述随后毫无问题地运行。