本から学ぶことは常に浅はかで、これがさらなるダウンタイムを引き起こすことには決して気づきません...私は自分の愚かなトラブルシューティングのプロセスを記録します。 先週、立ち上げたばかりのシステムで、再度ログインできないという報告が出始めました。このシステムでは最近この問題が発生しており、開発者もその問題を探していたため、私たちはあまり注意を払っていませんでした。そこで、オペレーティング システムにログインし、mysql -uroot -p を使用してデータベースにログインしましたが、何も起こらず、ログインできませんでした... 説明すると、MySQL は mysql ユーザーの下にインストールされます。データベース パラメータはインストール中に調整されますが、オペレーティング システム レベルでは調整は行われません。したがって、mysql ユーザーのオープン ファイルの最大数はデフォルトの 1024 に制限されており、ulimit -n を使用して照会できます。その後、mysql の root アカウントでデータベースにログインした状態で、mysql の system ユーザーでもログインし、そのときのサーバー負荷を確認しました。CPU やメモリなどは正常でしたが、データベースに接続しているアプリケーションが多数存在していました。 この時点で問題は明らかです。システム ユーザーが開いた mysql ファイルの数が最大制限に達した可能性があり、当然、これ以上の接続を開くことはできません。 しかし、当時はこれに思い至りませんでした。私が考えたのは、ログインするシステムユーザーを変更するのではなく、アプリケーションを停止するのではなく、データベースを再起動することでした。 。 。さらに、このデータベースは、どれも重要なビジネスではないものの、1 つのビジネスだけではなく複数のビジネスを運営しています。 。 。 そこで、mysql ユーザーで mysqladmin -uroot -p shut down を実行し、データベースを再起動する準備をしました。これは間違いなく応答しないでしょう。理由は、以前のルートアカウントがデータベースに接続できないのと同じです。Ctrl + Cの後、次のエラーが報告されます ^Cmysqladmin: 'localhost' のサーバーへの接続に失敗しました エラー: 「初期通信パケットを待機中」で MySQL サーバーへの接続が失われました。システム エラー: 4 その後、データが失われるかもしれないと思ったにもかかわらず、さらに愚かなことをして、mysql プロセスを強制終了しました。 。 。その後、mysql を再起動すると、システムが利用可能になります。それは本当に愚かなことでした。それを終えた後、すぐに、もっと良い対処法がたくさんあることを思い出しましたが、私は最も愚かな方法を選択しました。 今日、データベースに再度ログインしたところ、max_connections、table_open_cache など、いくつかのパラメータが設定ファイルに書き込んだものと異なっており、すべてデフォルト値に設定されていました。最後の起動ログを確認したところ、確かに警告がありました。 2019-03-15T08:14:03.038750Z 0 [警告] 制限が変更されました: max_open_files: 1024 (要求数 12010) 2019-03-15T08:14:03.038911Z 0 [警告] 制限が変更されました: max_connections: 214 (要求数 2000) 2019-03-15T08:14:03.038916Z 0 [警告] 制限が変更されました: table_open_cache: 400 (要求 5000) 明らかに、mysql はパラメータ設定に基づいてインスタンスが開く必要があるファイルの最大数を計算しましたが、これは現在のシステムユーザーの最大制限を超えているため、パラメータは使用されず、デフォルト値が使用されます。もちろん、起動後もデータベースは利用可能であり、起動後にパラメータを手動で設定することもできます。 グローバルmax_connections=2000を設定します。 グローバルtable_open_cacheを5000に設定します。 ただし、以前遭遇した問題が発生する可能性があります。つまり、データベース接続数が max_connections 制限に達しず、ユーザーは依然として接続できません。通常の状況では、接続数がいっぱいになった場合でも、MySQL は root ユーザー用の接続を予約するため、root ユーザーはデータベースにログインして問題を確認できることに注意してください。 解決策も非常に簡単です。オペレーティング システム ユーザー mysql の制限値を増やし、構成ファイル /etc/security/limits.conf の後に新しい制限値を追加するだけです。 mysql ソフト nofile 32768 mysql ハード nofile 65535 上記は、私がご紹介したMySQLシステムユーザーのオープンファイルの最大数についての詳細な説明です。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: Ubuntu 19でdockerソースをインストールできない問題を共有する
1.0 Redis の永続性Redis はメモリ内データベースです。サーバー プロセスが終了すると、...
MySql は、私たちが頻繁に使用するデータ ソースです。開発者が練習、小規模なプライベート ゲーム...
目次序文成果を達成するコードCSSコードJSコードHTMLコードデモンストレーションのプロセス序文ク...
皆様の参考と操作を容易にするために、様々な主要ウェブサイトを検索し、関連するスケジュールされたタスク...
OS X 環境で MySQL を起動すると、エラー メッセージが表示されます。 016-03-03T...
序文:インストール プロセスについては詳しく説明しません。問題に直接触れましょう。MySQL のリモ...
序文最近、仕事でAES_ENCRYPT()関数を使用してプレーンテキストを暗号化し、MySQL に保...
この記事は、参考のためにMySQL 8.0.19のインストールと設定のグラフィックチュートリアルを記...
この記事の例では、要素のマウスドラッグ効果を実現するためのvue+tsの具体的なコードを参考までに共...
1. ユーザーを追加します。まず、adduser コマンドを使用して共通ユーザーを追加します。コマン...
mysqlのrootアカウント、普段はlocalhostか127.0.0.1で接続しています。会社の...
目次例えば:一般的な執筆:要約する例えば:次に、データベースのUSERテーブルにUserオブジェクト...
目次日付オブジェクト日付オブジェクトの作成新しい日付()日付を取得する()取得日()月を取得する()...
序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...
目次1. DHCP サービス (動的ホスト構成プロトコル) 1. 背景2. 概要3. 利点4.DHC...