mysql5.7.21 の異常起動を修正する方法

mysql5.7.21 の異常起動を修正する方法

同僚から、停電のため MySQL インスタンスを起動できないという報告がありました。 innodb_force_recovery=6 を使ってもダメだったので確認してみました。

トラブルシューティングのプロセス:

最も初期の起動情報にはエラー メッセージはなく、次のように [ERROR] Aborting プロンプトの行のみが表示されます。

その後、同僚が innodb_force_recovery=6 を使用したところ、以下のエラー メッセージが表示されましたが、それでも正常に起動できませんでした。このとき、何が起こっているのか調べることにしました。

起動ログをフィルタリングし、 grep ERROR /data/mysql/3306/mysql_run.err を実行します。

ご覧のとおり、すべてのエラーは主に次のとおりです。

MySQL を起動できない理由のほとんどはシステム データベースの問題によるもので、この場合も例外ではないようです。

--skip-grant-tables を使用してシステムにログインしようとしましたが、成功しました。

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/3306/my.cnf --user=mysql --skip-grant-tables &

次に、できるだけ早く innodb をチェックして実行します。

イノチェックサムibdata1

その後、出力は見つかりませんでした。

次に、mysqlcheck を実行すると、mysql ライブラリの下のテーブル内のいくつかのエラーが実際に修復されます。その後、通常の方法でシステムを再起動すると、MySQL は正常に戻ります。

mysqlcheck -u ルート -p --repair -A

要約:

1. MySQL はそれほど脆弱ではありません。破損したときに、時間と労力がかかるバックアップとリカバリによって復元する必要はありません。

2. 起動プロセス中に、--skip-grant-tables または innodb_force_recovery (このパラメータは cnf ファイルを変更する必要があります) を設定すると、MySQL がいくつかのチェックをスキップし、インスタンスが正常に起動できるようになります。

3. 起動後、データのバックアップまたはエクスポートを実行し、インスタンスの修復を試みることができます。

4. この場合、この問題はリアルタイム保存パラメータの設定が不適切であるために発生します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL リンクを表示し、異常なリンクを削除する方法
  • MySQLがbinlogファイルを手動で登録し、マスタースレーブ異常を引き起こす理由
  • MySQL データベース接続例外の概要 (収集する価値あり)
  • MySQL innodb例外の修復に関する経験の共有
  • MySQLの定義と例外処理の詳細
  • MySQL ストアド プロシージャの基本的な例外処理のチュートリアル
  • MySQLの異常なクエリケースの分析
  • MySQL 例外処理の簡単な分析
  • MySQL例外に対する一般的な解決策をいくつか分析する

<<:  JQuery を放棄すべきでしょうか?

>>:  Linux でリモート サーバー ファイルの状態を表示する方法

推薦する

jQueryでフルスクリーンスクロール効果を実現

この記事の例では、フルスクリーンスクロールを実現するためのjQueryの具体的なコードを参考までに共...

MySQLサービスを開くおよび閉じる2つの方法

方法1: cmdコマンドを使用するまず、DOS ウィンドウを開き、スタート、実行、cmd と入力しま...

JavaScript が重複したネットワークリクエストを防ぐ方法の例

序文開発中は、インターフェース要求の繰り返しによってさまざまな問題が発生することがよくあります。ネッ...

CSS変数がJSインタラクティブコンポーネント開発にもたらす改善と変更のサンプルコードの詳細な説明

1. CSS変数がもたらす質的変化CSS 変数によってもたらされる改善は、CSS コードの節約や C...

Vue の echarts ツールチップにクリック イベントを追加する詳細な説明

目次必要回避策1. ツールチップを設定する2. hookToolTip変数を定義する3. メソッド内...

Docker データボリュームコンテナの作成と使用状況分析

データ ボリューム コンテナーは、データ ボリュームをマウントするために特別に使用されるコンテナーで...

HTML テーブルタグチュートリアル (45): テーブル本体タグ

<tbody> タグは、テーブル本体のスタイルを定義するために使用されます。基本構文 &...

MySQL レプリケーションの詳細な説明と簡単な例

MySQL レプリケーションの詳細な説明と簡単な例マスタースレーブレプリケーション技術は、MySQL...

...

Dockerはポートを介してコンテナに接続します

Dockerコンテナ接続1. ネットワークポートマッピングPythonアプリケーション用のコンテナを...

中国語と英語のフォント名の比較表(FounderとArphicを含む)

CSS ファイルでは、フォント名が文字化けしていることがよくあります。これは、作成者が中国語フォン...

tbodyタグの魔法はテーブルコンテンツの表示を高速化します

他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...

JavaScript プロトタイプの詳細

目次1. 概要1.1 プロトタイプとは何ですか? 1.2 プロトタイプを入手する2. プロトタイプの...

Nginx サーバーで Web クローラーをブロックおよび禁止する方法

通常、すべての Web サイトは、多くの非検索エンジン クローラーに遭遇します。これらのクローラーの...

Nginx がフロントエンド リソースへのクロスドメイン アクセスの問題をどのように解決するかの詳細な説明

フロントエンドのクロスドメイン問題に2日間近く悩まされましたが、ようやくngnxを使って解決したので...