MySQL自動シャットダウン問題への対処の実践記録

MySQL自動シャットダウン問題への対処の実践記録

最近、あるプロジェクトを手伝ったのですが、MySQL マシンがしばらくすると自動的に停止し続けました。最初は突然止まったのかと思い、気にせず手動で再起動してしまいました。しかし、2日後にはまた止まってしまいました。

その後、mysqld ログを注意深く確認しました。

2020-05-27T10:15:12.569342Z 0 [システム] [MY-010116] [サーバー] /usr/libexec/mysqld (mysqld 8.0.17) がプロセス 19493 として開始されました
2020-05-27T10:15:14.448256Z 0 [システム] [MY-010229] [サーバー] クラッシュ回復を開始しています...
2020-05-27T10:15:14.475411Z 0 [システム] [MY-010232] [サーバー] クラッシュ回復が完了しました。
2020-05-27T10:15:14.691345Z 0 [警告] [MY-010068] [サーバー] CA 証明書 ca.pem は自己署名されています。
2020-05-27T10:15:15.677386Z 0 [システム] [MY-010931] [サーバー] /usr/libexec/mysqld: 接続準備完了。バージョン: '8.0.17' ソケット: '/var/lib/mysql/mysql.sock' ポート: 3306 ソース配布。
2020-05-27T10:15:15.951210Z 0 [システム] [MY-011323] [サーバー] X プラグインが接続準備完了。ソケット: '/var/lib/mysql/mysqlx.sock' バインド アドレス: '::' ポート: 33060
2020-05-27T11:26:19.955004Z 0 [システム] [MY-010116] [サーバー] /usr/libexec/mysqld (mysqld 8.0.17) がプロセス 19757 として開始されました
2020-05-27T11:26:20.181302Z 0 [エラー] [MY-012681] [InnoDB] mmap(137363456 バイト) が失敗しました。エラー番号 12
2020-05-27T11:26:20.181360Z 1 [エラー] [MY-012956] [InnoDB] バッファプールにメモリを割り当てることができません
2020-05-27T11:26:20.181379Z 1 [ERROR] [MY-012930] [InnoDB] プラグインの初期化がエラーのため中止されました。一般的なエラーです。
2020-05-27T11:26:20.181401Z 1 [エラー] [MY-010334] [サーバー] DD ストレージ エンジンの初期化に失敗しました
2020-05-27T11:26:20.181543Z 0 [エラー] [MY-010020] [サーバー] データ辞書の初期化に失敗しました。
2020-05-27T11:26:20.183642Z 0 [エラー] [MY-010119] [サーバー] 中止しています
2020-05-27T11:26:20.184163Z 0 [システム] [MY-010910] [サーバー] /usr/libexec/mysqld: シャットダウンが完了しました (mysqld 8.0.17) ソース配布。

上記のメッセージは、「バッファ プールにメモリを割り当てることができません」と表示されています。 Cannot allocate memory for the buffer pool 。すぐにメモリ不足を思い浮かべました。このマシンには 1GB のメモリがあり、Nginx と PHP-FPM を実行しています。

top を使用すると、mysqld がメモリの 48% を使用していることがわかりました。メモリ使用量はまだかなり高いです。

もちろん、マシン構成をアップグレードするのがより良い解決策ですが、結局のところ資金は限られています。まずスワップ領域を追加してみましょう:

dd if=/dev/zero of=/swapfile bs=1M カウント=2048
mkswap /スワップファイル
swapon /スワップファイル
systemctl で mysqld を再起動します。

上記では、マシンに 2GB のスワップ領域を追加しました。次に、mysqld を再起動します。再度 top を使用したところ、スワップ領域が徐々に使用されていることがわかりました。

昼寝を終えて目が覚めると、mysqld サービスが自動的に停止せず、メモリ使用量が 22% まで下がっていました。エラー ログを見ると空でした。

まあ、良さそうですね。あと数日観察してみて、問題がなければ大丈夫だと思います😎😎😎。

さて、これでMySQL自動シャットダウンの問題の対処方法に関するこの記事は終わりです。MySQL自動シャットダウン処理に関するより関連性の高いコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL自動停止プラグインFEDERATEDが無効になっている場合の完璧なソリューション
  • MySQLサービスの自動停止の解決策
  • MySQL が自動的に再起動する問題の解決方法

<<:  このリファレンスとJavaScriptのカスタムプロパティの詳細な説明

>>:  Linux で NFS のワンクリック展開を実装する方法

推薦する

Redission-tomcatは、単一マシンから複数マシンへの展開を迅速に実装します。

序文一部のプロジェクトの初期段階では、シンプルさとスピードのために、開発と展開は単一のマシンで行われ...

.Net Core を使用して数千万のデータを MySQL にインポートする手順

目次事前準備実施方法: 1. 単一のデータを挿入する2. マージデータ挿入3. MySqlBulkL...

VUE レンダリング機能の使い方と詳細な説明

目次序文レンダリングの役割レンダリング機能の説明レンダリングとテンプレートの違いレンダリング例要約す...

MySQL の concat 関数についての簡単な説明。MySQL でフィールドの前または後に文字列を追加する方法

MySQL で concat 関数を使用する方法: CONCAT(文字列1、文字列2、…)戻り値は、...

Vue命令の実装原理の分析

目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....

WeChatミニプログラム公式顔認証の詳しい説明

ミニプログラムはユーザーの個人情報を収集してアップロードしましたが、拒否されました。こんにちは、ミニ...

Vue+ElementUI はページング関数を実装します - mysql データ

目次1. 問題2. 解決策2.1 ページングコンポーネント2.2 データベースデータを取得する関数:...

MySQL と Golan 間の従来の分散トランザクションのための 7 つのソリューション

目次1. 基本理論1.1 取引1.2 分散トランザクション2. 分散トランザクションソリューション2...

CentOS8 jdk8 / java8 のインストールチュートリアル(推奨)

序文最初はCentOS8でwgetを使ってダウンロードし、解凍して環境変数を設定するつもりだったので...

リクエスト IP の最後のセグメントに基づいてトラフィックを分割するように Nginx を構成する方法

これは主に、場所パラメータのif判断の設定ジャンプです。迂回により、サーバーの負荷と圧力を軽減できま...

Vue が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明

目次解決された主な問題1. バックエンドから返され、バックエンドに送信されるデータは、次の形式になり...

HTML で色を表すには、6 桁の 16 進コード、RGB、またはキーワードを使用します。

HTML で色を表す方法は 3 つありますが、最もよく使われるのは 6 桁の 16 進コード表現です...

Vue2は応答性を提供するためにprovide injectを実装しています

1. vue2 での従来の書き方 // 親コンポーネントは 'foo' を提供します...

Nodejs でモジュール fs ファイルシステムを使用する方法

目次概要ファイル記述子同期、非同期、Promise同期書き込み非同期書き込み(推奨)約束​​の書き方...