2012年11月27日

Table 'mysql.slave_master_info' cannot be opened.

Mysql5.6.8_rc をインストールした時にハマったこと。

インストール完了後、InnoDBや、レプリケーションの設定を施したmy.cnfを作成して反映する。

ibdata1や、ib_logfileを削除しないとうまく起動しないので、そいつらを消して再起動すると、

エラーログに

121127 20:55:52 [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.
121127 20:55:52 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
121127 20:55:52 [ERROR] Error in checking mysql.slave_master_info repository info type of TABLE.
121127 20:55:52 [ERROR] Error creating master info: Error checking repositories.
121127 20:55:52 [ERROR] Failed to create or recover replication info repository.

と出力される。

どうもibdata1を消したせいか、mysqlデータベース内の、InnoDBで作られたTBLが壊れたみたい。。。。
そのせいで、レプリケーションも出来ず!!

ということで復旧を頑張る。

まず、テーブルを消す!

use mysql;
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`;

でも、.ibdは残っているのでこれも消す!

rm -rf /var/lib/mysql/mysql/innodb_index_stats.ibd
rm -rf /var/lib/mysql/mysql/innodb_table_stats.ibd
rm -rf /var/lib/mysql/mysql/slave_master_info.ibd
rm -rf /var/lib/mysql/mysql/slave_relay_log_info.ibd
rm -rf /var/lib/mysql/mysql/slave_worker_info.ibd

mysql_system_tablesから再作成!!

use mysql;
source /usr/share/mysql/mysql_system_tables.sql;

これで一応直った^^こんなんでいいのかしら?
posted by hana at 21:39| Comment(0) | TrackBack(0) | DB,SQL関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック