コンピュータ ルームのサーバー上の mysql がしばらく実行されていたのですが、突然、再起動しても回復できないという非常に奇妙な現象が発生しました。正確な状況は、mysql を起動した後、すぐに再び閉じられることです。 次のようにして、mysql エラー ログを確認します。 160920 22:41:41 mysqld_safe /home/MysqlData/ のデータベースを使用して mysqld デーモンを起動しています 2016-09-20 22:41:41 0 [注記] /Data/app/mysql5.6.25/bin/mysqld (mysqld 5.6.25-log) がプロセス 32372 として開始されました... 2016-09-20 22:41:42 32372 [注意]プラグイン「FEDERATED」は無効になっています。 2016-09-20 22:41:42 32372 [警告] オプション 'innodb-write-io-threads': 符号なし値 1000 が 64 に調整されました 2016-09-20 22:41:42 32372 [警告] オプション 'innodb-read-io-threads': 符号なし値 1000 が 64 に調整されました 2016-09-20 22:41:42 32372 [注記] InnoDB: アトミックを使用してバッファプールページを参照カウントする 2016-09-20 22:41:42 32372 [注意] InnoDB: InnoDB メモリヒープが無効になっています 2016-09-20 22:41:42 32372 [注記] InnoDB: ミューテックスと rw_locks は GCC アトミック組み込み関数を使用します 2016-09-20 22:41:42 32372 [注意] InnoDB: メモリバリアは使用されません 2016-09-20 22:41:42 32372 [注記] InnoDB: 圧縮テーブルは zlib 1.2.3 を使用します 2016-09-20 22:41:42 32372 [注記] InnoDB: CPU crc32 命令の使用 2016-09-20 22:41:42 32372 [注記] InnoDB: バッファプールを初期化しています。サイズ = 1.0G 2016-09-20 22:41:42 32372 [注記] InnoDB: バッファプールの初期化が完了しました 2016-09-20 22:41:42 32372 [注記] InnoDB: サポートされている最高のファイル形式は Barracuda です。 2016-09-20 22:41:42 32372 [注記] InnoDB: ログスキャンがチェックポイント lsn 20293587957 を超えて進行しました 2016-09-20 22:41:42 32372 [注意] InnoDB:データベースが正常にシャットダウンされませんでした。 2016-09-20 22:41:42 32372 [注記] InnoDB: クラッシュリカバリを開始しています。 2016-09-20 22:41:42 32372 [注記] InnoDB: .ibd ファイルからテーブルスペース情報を読み取っています... 2016-09-20 22:41:42 32372 [注記] InnoDB: 半分書き込まれた可能性のあるデータページの復元 2016-09-20 22:41:42 32372 [注記] InnoDB: ダブルライト バッファから... InnoDB: リカバリを実行しています: ログ シーケンス番号 20293596130 までスキャンしました 2016-09-20 22:41:42 32372 [注記] InnoDB: データベースへのログ レコードの適用バッチを開始しています... InnoDB: 進捗状況(パーセント): 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 InnoDB: バッチ適用が完了しました InnoDB: 最後の MySQL バイナリログ ファイルの位置 0 136254、ファイル名 mysql-bin.000013 2016-09-20 22:41:43 32372 [注記] InnoDB: 128 個のロールバック セグメントがアクティブです。 2016-09-20 22:41:43 32372 [メモ] InnoDB: パージの開始を待機しています 2016-09-20 22:41:43 7f77a9edd700 InnoDB: スレッド 140151928772352、ファイル trx0purge.cc の行 699 でアサーション エラーが発生しています InnoDB: アサーションに失敗しました: purge_sys->iter.trx_no <= purge_sys->rseg->last_trx_no InnoDB: 意図的にメモリトラップを生成します。 InnoDB: 詳細なバグレポートを http://bugs.mysql.com に送信してください。 InnoDB: アサーションの失敗やクラッシュが繰り返し発生する場合、 InnoDB: mysqldの起動直後に、 InnoDB: InnoDBテーブルスペースが破損しています。 InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html InnoDB: 強制リカバリについて。 02:41:43 UTC - mysqld はシグナル 6 を取得しました。 これはバグに遭遇したためかもしれません。また、このバイナリが または、リンクされているライブラリの1つが破損しているか、不適切に構築されているか、 または構成が誤っています。このエラーは、ハードウェアの故障によっても発生する可能性があります。 役立つ情報を集めるために全力を尽くします 問題を診断するが、すでにクラッシュしているので、 何かが間違いなく間違っており、失敗する可能性があります。 ログを分析した結果、ibdata1 ファイルが破損しており、再起動後に正常に復元できなかったため、データベースを再起動できなかったことが判明しました。 解決:
リカバリ手順をスキップし、my.cnf ファイルを変更して、my.cnf の [mysqld] に以下を追加する必要があります。
innodb_force_recovery = 6 innodb_purge_threads = 1 説明する:
innodb_force_recovery は 1 ~ 6 に設定でき、数値が大きいほど、それ以前のすべての数値の効果が含まれます。
特定の数字の意味:
1-----(SRVFORCEIGNORECORRUPT): 検出された破損ページを無視します。 2-----(SRVFORCENOBACKGROUND): メイン スレッドの実行を防止します。メイン スレッドが完全なパージ操作を実行する必要がある場合、クラッシュが発生します。 3-----(SRVFORCENOTRXUNDO): トランザクションのロールバックは実行されません。 4-----(SRVFORCENOIBUFMERGE): 挿入バッファに対してマージ操作を実行しません。 5-----(SRVFORCENOUNDOLOGSCAN): REDO ログをチェックしないと、InnoDB ストレージ エンジンはコミットされていないトランザクションをコミット済みとして扱います。 6-----(SRVFORCENOLOG_REDO): ロールフォワード操作を実行しません。 もう一度mysqlを起動すれば大丈夫ですよ〜
それでも起動できない場合は、データ ディレクトリのデータファイル内の ibdata1、ib_logfile* などのファイルを削除する必要があります。
起動後、MySQL データベースをエクスポートして復元します。 上記の記事は、MySQL が起動直後に終了する問題 (ibdata1 ファイルの破損が原因) を完璧に解決するものであり、これが編集者が皆さんと共有する内容のすべてです。皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:- mysql-8.0.15-winx64はインストールにzipパッケージを使用し、起動後すぐにサービスがシャットダウンされます。
- MySQL はパスワード強度の検証をオフにします
- MySQL 子テーブルで外部キー制約チェックを無効にする方法
- PHP で mysqli オブジェクト指向メソッドを使用して MySQL データベースを開いたり閉じたりする方法
- MySQL サービスを安全にシャットダウンするチュートリアル
- lnmp でディスク領域を保護するために MySQL ログをオフにする方法
- Windows でバッチ処理を使用して MySQL を起動およびシャットダウンする
- MySQLデータベースの関数を開く、閉じる、表示する方法
- MySQL のシャットダウンプロセスと安全に MySQL をシャットダウンする方法の詳細な説明
- Mysql カーソルの定義、使用、終了に関する詳細な分析
- MySQLサーバーの起動とシャットダウン
- MySQLインスタンスを安全にシャットダウンする方法
|