Error: Table "mysql"."innodb_table_stats" not found

MySQL  SLAVE  升级到 5.6.21-enterprise-commercial-advanced-log 后,启动时报如下错误

InnoDB: Error: Fetch of persistent statistics requested for table "test"."orderqueue" but the required system tables mysql.innodb_table_stats and mysql.innodb_index_stats are not present or have unexpected structure. Using transient stats insttestd.
InnoDB: Error: Table "mysql"."innodb_table_stats" not found.
InnoDB: Recalculation of persistent statistics requested for table "test"."orderqueue" but the required persistent statistics storage is not present or is corrupted. Using transient stats insttestd
.

 

由于是将低版本的MySQL datadir目录直接拷贝到5.6.21-enterprise-commercial-advanced-log的,低版本的mysql这个schema中并没有innodb_table_stats,innodb_index_stats这些表。所以登录到mysql这个schema中手工创建这些表后,重启mysql即可。

CREATE TABLE `innodb_table_stats` (
  `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `n_rows` bigint(20) unsigned NOT NULL,
  `clustered_index_size` bigint(20) unsigned NOT NULL,
  `sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
  PRIMARY KEY (`database_name`,`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;

 

CREATE TABLE `innodb_index_stats` (
  `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `index_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `stat_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `stat_value` bigint(20) unsigned NOT NULL,
  `sample_size` bigint(20) unsigned DEFAULT NULL,
  `stat_description` varchar(1024) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;

你可能感兴趣的:(Error: Table "mysql"."innodb_table_stats" not found)