ホームページ  >  記事  >  データベース  >  MySQLデータベースinnodbの起動に失敗し再起動できない問題の解決策_MySQL

MySQLデータベースinnodbの起動に失敗し再起動できない問題の解決策_MySQL

WBOY
WBOYオリジナル
2016-10-09 08:33:401060ブラウズ

問題の紹介

使用中にコンピューターがクラッシュしました。再起動後、mysql が正常に起動しないことがわかりました。エラー ログを見ると、mysql の起動に失敗する原因となった innodb に問題があることがわかりました。

エラーログ

リーリー

解決策

1. データが重要ではない場合、またはバックアップされている場合は、mysql の起動を復元するだけで済みます

通常は mysql ディレクトリを入力します: /usr/local/var/mysql/

削除ib_logfile*

削除ibdata*

すべてのデータベースの物理ディレクトリを削除します (たとえば、データベースが test_db の場合は、rm -rf test_dbを実行します)

mysqlを再起動

データベースを再構築するか、バックアップで上書きします

2. データが重要でバックアップがない場合

パラメータを使用すると、mysqld にリカバリ手順をスキップさせ、mysqld を起動し、データをエクスポートしてデータベースを再構築することができます。 innodb_force_recovery

1〜6に設定でき、大きい数値には以前のすべての数値の影響が含まれますinnodb_force_recovery

1. (SRV_FORCE_IGNORE_CORRUPT): 検出された破損したページを無視します。


2. (SRV_FORCE_NO_BACKGROUND): メインスレッドが完全なパージ操作を実行する必要がある場合、クラッシュが発生します。


3. (SRV_FORCE_NO_TRX_UNDO): トランザクションのロールバック操作を実行しません。


4. (SRV_FORCE_NO_IBUF_MERGE): 挿入バッファーのマージ操作を実行しません。


5. (SRV_FORCE_NO_UNDO_LOG_SCAN): REDO ログをチェックしないと、InnoDB ストレージ エンジンはコミットされていないトランザクションをコミットされたものとして扱います。


6. (SRV_FORCE_NO_LOG_REDO): ロールフォワード操作を実行しません。


my.cnf に を追加します (Windows は my.ini)

リーリー

mysqlを再起動

現時点では、選択、作成、削除の操作のみが実行できますが、挿入、更新、削除の操作は実行できません


完了後に論理エクスポートを実行し

、データベースを再構築し、最後にエクスポートされたデータを再インポートしますinnodb_force_recovery=0innodb_purge_threads=1

概要

上記はこの記事の全内容です。ご質問がございましたら、メッセージを残していただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。