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 でリモート サーバー ファイルの状態を表示する方法

推薦する

Centos7のホスト名を変更する3つの方法

方法 1: hostnamectl の変更ステップ1 ホスト名を確認するホスト名ステップ2 ホスト名...

7つの便利なTypeScriptの新機能

目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...

Vue エクスポート Excel 機能の全プロセス記録

目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...

mysql8.0.0 winx64.zip 解凍バージョンのインストールと設定のチュートリアル

この記事はmysql8.0.0 winx64.zip解凍版のインストールチュートリアルを記録していま...

角度に基づくツリー型セカンダリテーブルを実現する

まず効果を見てみましょう: コード: 1.html <div class="user...

JavaScriptのアロー関数の特徴と通常の関数との違い

目次1. 矢印関数の使用1. 通常関数から矢印関数へ2. 中括弧を省略してリターンする3. 括弧を省...

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...

docker-compose ネットワーク設定についての簡単な説明

ネットワーク使用チュートリアル公式サイト docker-compose.yml リファレンスドキュメ...

Nginxドメイン名転送のhttpsアクセスの実装

事前に一言:突然、複数のドメイン名のアクセスを https に転送するというタスクを受け取りました。...

Javascript における分割代入構文の詳細な説明

序文ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿...

Docker でコンテナのポート マッピングを動的に変更する方法

前書き: Docker のポート マッピングは、多くの場合、Docker Run コマンド中に -p...

after疑似要素を使用して中空の三角矢印とXアイコンを実装する例

フロントエンドのデザイン案では、「X」や「>」の形をした閉じるボタンや、他の 3 方向の白抜き...

Xshell にショートカット コマンドを追加する方法

便利なターミナル エミュレーターである Xshell は、開発者がホスト サーバーをリモート管理する...

期間限定フラッシュセール機能を実現するJavaScriptタイマー

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

CentOS 8 カスタム ディレクトリ インストール nginx (チュートリアルの詳細)

1. ツールとライブラリをインストールする# PCRE は、Perl 互換の正規表現ライブラリを含...