mysql5.6安装 mysql.slave_master_info表不存在的解决方法

1.在安装mysql 5.6.15时,安装完成后,后台日志报如下警告信息:

2014-01-08 13:47:34 22946 [Warning] InnoDB: Cannot open table mysql/slave_master_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.

2014-01-08 13:47:34 22946 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened. 

2014-01-08 13:47:34 22946 [Warning] InnoDB: Cannot open table mysql/slave_worker_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. 

2014-01-08 13:47:34 22946 [Warning] InnoDB: Cannot open table mysql/slave_relay_log_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. 

2014-01-08 13:47:34 22946 [Warning] Info table is not ready to be used. Table 'mysql.slave_relay_log_info' cannot be opened. 

……. 

2014-01-08 13:49:33 22946 [Warning] InnoDB: Cannot open table mysql/innodb_index_stats from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem. 

2014-01-08 13:49:49 7f3ae82a5700 InnoDB: Error: table mysql.innodb_index_stats does not exist in the InnoDB internal

2.问题产生原因:具体原因目前不详,网上查找到的资料:数据库打开这几张表的默认引擎为MyISAM,但是这几张表在建表时的引擎为INNODB

但是能确定的,这几张表确实是在mysql5.6中新入的

innodb_index_stats,

innodb_tables_stats,

slave_master_info,

slave_relay_log_info,

slave_worker_info

3.解决方法:

(1) 登录数据库,进入mysql库,执行如下SQL删除5张表

记住,一定要是drop table if exists

drop table if exists innodb_index_stats; 

drop table if exists innodb_table_stats; 

drop table if exists slave_master_info; 

drop table if exists slave_relay_log_info; 

drop table if exists slave_worker_info;

如下是执行的结果,忽略你看到的Warning信息

admin@localhost : mysql 02:12:26> drop table if exists innodb_index_stats;

Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 155): Table 'mysql.innodb_index_stats' doesn't exist 

admin@localhost : mysql 02:12:26> drop table if exists innodb_table_stats; 

Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 155): Table 'mysql.innodb_table_stats' doesn't exist 

admin@localhost : mysql 02:12:26> drop table if exists slave_master_info; 

Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 155): Table 'mysql.slave_master_info' doesn't exist 

admin@localhost : mysql 02:12:27> drop table if exists slave_relay_log_info; 

Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 155): Table 'mysql.slave_relay_log_info' doesn't exist 

admin@localhost : mysql 02:12:27> drop table if exists slave_worker_info; 

Query OK, 0 rows affected, 1 warning (0.00 sec) 

Warning (Code 155): Table 'mysql.slave_worker_info' doesn't exist

执行完后,可以用show tables查看一下,看表的数据是否已经比删除之前减少了,如果减少了,说明你成功了!

(2)面这一部操作完成后,停止数据库,并进入到数据库数据文件所在目录,删除表面5个表所对应的idb文件,如下所示:

[mysql@test /data/mysqldata3/mydata/mysql]ls .ibd 

innodb_index_stats.ibd innodb_table_stats.ibd slave_master_info.ibd slave_relay_log_info.ibd slave_worker_info.ibd 

[mysql@teset /data/mysqldata3/mydata/mysql]rm -f 
.ibd

(3) 重新启动数据库,进入到mysql库,重建上面被删除的表结构:

数据库的建设表脚本在mysql软件的安装目录的share目录下,我的mysql软件的安装路径为/usr/test/mysql

admin@localhost : (none) 02:23:03> use mysql 

Database changed

如下是执行建表脚本前表的数量:

admin@localhost : mysql 02:23:48> source /usr/test/mysql/share/mysql_system_tables.sql

admin@localhost : mysql 02:23:50> show tables; 

+—————————+ 

| Tables_in_mysql | 

+—————————+ 

| columns_priv | 

| db | 

| event | 

| func | 

| general_log | 

| help_category | 

| help_keyword | 

| help_relation | 

| help_topic | 

| ndb_binlog_index | 

| plugin | 

| proc | 

| procs_priv | 

| proxies_priv | 

| servers | 

| slow_log | 

| tables_priv | 

| time_zone | 

| time_zone_leap_second | 

| time_zone_name | 

| time_zone_transition | 

| time_zone_transition_type | 

| user | 

+—————————+ 

23 rows in set (0.00 sec)

如下为执行建表脚本后,表的数量

admin@localhost : mysql 02:23:46> show tables; 

+—————————+ 

| Tables_in_mysql | 

+—————————+ 

| columns_priv | 

| db | 

| event | 

| func | 

| general_log | 

| help_category | 

| help_keyword | 

| help_relation | 

| help_topic | 

| innodb_index_stats | 

| innodb_table_stats | 

| ndb_binlog_index | 

| plugin | 

| proc | 

| procs_priv | 

| proxies_priv | 

| servers | 

| slave_master_info | 

| slave_relay_log_info | 

| slave_worker_info | 

| slow_log | 

| tables_priv | 

| time_zone | 

| time_zone_leap_second | 

| time_zone_name | 

| time_zone_transition | 

| time_zone_transition_type | 

| user | 

+—————————+ 

28 rows in set (0.00 sec)

(4) 用show create table命令查看表时,也完正常,后台日志中也不再报与上面提到的5张表相关的错误,到此,问题全部解决!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值