サーバー S1 (mysql バージョン 5.1.41-3ubuntu12.7-log) に mysql DB があり、サーバー S2 (mysql バージョン 5.1.54-1ubuntu4-log) にこの DB のマスタースレーブを作成しました。
S1 の DB は 1 つのデータ ファイル (ibdata) を使用していました。DBをS2にダンプした後、innodb_file_per_table = 1を設定しました。これにより、すべてのテーブルに独自の ibd ファイルが作成されました。今ではすべてがうまくスムーズに進みました。
しかし、S2 で mysql を再起動した後、このエラーが発生するという問題に直面しました:
Error 'Unknown table engine 'InnoDB'' on query. Default database: MyDB
エンジンを表示しようとすると
エンジンを表示します。 +------------+---------------------+-------------------------- --------------------------------------+----------------------- ---+------+------------+ | | エンジン | エンジン | サポート | コメント | 取引 | XA | セーブポイント | +------------+---------------------+-------------------------- --------------------------------------+----------------------- ---+------+------------+ | | MyISAM | デフォルト | MySQL 3.23 以降のデフォルト エンジンは優れたパフォーマンスを発揮 | いいえ | いいえ | いいえ | | | MRG_MYISAM | はい | 同一の MyISAM テーブルのコレクション | いいえ | いいえ | いいえ | | | ブラックホール | はい | /dev/null ストレージ エンジン (書き込んだものはすべて消えます) | いいえ | いいえ | いいえ | | | CSV | はい | CSV ストレージ エンジン | いいえ | いいえ | いいえ | | | メモリー | はい | ハッシュベース、メモリに保存、一時テーブルに便利 | いいえ | いいえ | いいえ | | | フェデレーテッド | いいえ | フェデレーテッド MySQL ストレージ エンジン | ヌル | ヌル | ヌル | | | アーカイブ | はい | アーカイブ ストレージ エンジン | いいえ | いいえ | いいえ | +------------+---------------------+-------------------------- --------------------------------------+----------------------- ---+------+------------+
innodb はリストされていません。
エラーログで私はこれを見ることができます:
InnoDB: データベースは物理的にファイルをフルに書き込みます: 待ちます... InnoDB: 作成されたログ ファイルを初期化できません。 InnoDB: データ ファイルが破損しているか、新しいデータ ファイルが InnoDB: データベースが以前に起動されたときに作成されました InnoDB: 時間ですが、データベースはシャットダウンされませんでした InnoDB: 通常はその後。 111016 8:24:11 [エラー] プラグイン 'InnoDB' init 関数がエラーを返しました。 111016 8:24:11 [エラー] プラグイン 'InnoDB' を STORAGE ENGINE として登録できませんでした。 111016 8:24:11 [警告] --relay-log も --relay-log-index も使用されていません。そのため、この MySQL サーバーがスレーブとして機能し、ホスト名が変更されると、レプリケーションが中断する可能性があります!! この問題を回避するには、「--relay-log=S2-relay-bin」を使用してください。
ib_logfiles を削除しようとしましたが、これもうまくいきませんでした。
誰も前にそのような問題に直面しました?? どんなアイデアでも大歓迎です
ありがとう