zoukankan      html  css  js  c++  java
  • [转载] mysql5.6 删除之前的ibdata1文件后再重新生成,遇到[Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.问题

    [转载] mysql5.6 删除之前的ibdata1文件后再重新生成,遇到[Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.问题
    转载:http://blog.csdn.net/wxc20062006/article/details/17999407

    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张表相关的错误,到此,问题全部解决!





    后记:在后面的环境中,配置双主架构时,又遇到了如下问题:

    error:
    ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
    最后通过如下的操作解决的问题,具体原因还尚未清楚

    (1)登录数据库后,删除5张表,并重新导入脚本
    use mysql
    drop table  slave_master_info;
    drop table  slave_relay_log_info;
    drop table  slave_worker_info;
    drop table  innodb_index_stats;
    drop table  innodb_table_stats;
    source /usr/coolpad/mysql/share/mysql_system_tables.sql

    (2)重新启动数据库

    注:这一步是必须的,否则无法正常配置双主架构。




  • 相关阅读:
    Introspector
    jython awt demo
    java中dom解析xml
    【luogu1816】忠诚
    代码调试技巧【OI缩水版】
    【UOJ78】二分图最大匹配
    【51nod】最大子段和
    【LibreOJ109】【模板】并查集
    简单的卡常数【OI缩水版】
    QQbot
  • 原文地址:https://www.cnblogs.com/djinmusic/p/4174270.html
Copyright © 2011-2022 走看看