この記事では主に、MySQL の Aborted アラームに関する関連コンテンツを紹介し、参考と学習のために共有します。詳細な紹介を見てみましょう。 実際の戦闘 パート1: 冒頭に書いた MySQL エラー ログには、さまざまな種類の「接続中止」エラーがよく見られます。この記事では、このようなエラーの予備分析を行い、問題が発生した後の基本的なトラブルシューティングの考え方と方法を説明します。問題が発生したときに推測して試すのではなく、この方法を習得することが重要です。データベースに問題が発生した場合、DBA は短期間で迅速に問題を解決する必要があります。したがって、優れた DBA と劣った DBA の違いはここにあります。 パート2: タイプ [警告] db: 'db'、ユーザー: 'dbuser'、ホスト: 'hostname' への接続 305628 が中止されました (通信パケットの読み取り中にエラーが発生しました) [警告] db:'unconnected' への接続 81 が中止されました。ユーザー: 'root'、ホスト: '127.0.0.1' (通信の読み取りタイムアウトが発生しました) パケット) [警告] db:'helei1' ユーザー: 'sys_admin' ホスト: '192.168.1.1' への接続 109 が中止されました (通信パケットの書き込み中にエラーが発生しました) [警告] ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用: YES) [警告] 通信パケットの書き込み中にエラーが発生しました パート3: 主要パラメータ分析 待機タイムアウト
このパラメータは、サーバーが非対話型接続をシャットダウンする前にアクティビティを待機する秒数を指定します。 インタラクティブタイムアウト
このパラメータは、対話型接続を閉じる前にサーバーがアクティビティを待機する秒数を指定します。 警告:落とし穴を避けるために、これら 2 つのパラメータを一緒に調整することをお勧めします。 この記事の2つのパラメータ値はデフォルト値を使用しています mysql> '%timeout%' のようなグローバル変数を表示します。 +----------------------------+----------+ | 変数名 | 値 | +----------------------------+----------+ | 接続タイムアウト | 10 | | 遅延挿入タイムアウト | 300 | | innodb_lock_wait_timeout | 50 | | innodb_rollback_on_timeout | オフ | |インタラクティブタイムアウト | 28800 | | ロック待機タイムアウト | 31536000 | | ネット読み取りタイムアウト | 30 | | ネット書き込みタイムアウト | 60 | | スレーブネットタイムアウト | 3600 | |待機タイムアウト | 28800 | +----------------------------+----------+ セット内の行数は 10 行 (0.01 秒) さらに、データベースでは、これらの2つのパラメータに注目して、どのような状況でAborted_clientsが増加し、どのような状況でAborted_connectsが増加するかを確認します。 mysql> 'aborted%' のようなグローバル ステータスを表示します。 +------------------+-------+ |変数名 | 値 | +------------------+-------+ |中止されたクライアント | 19 | |Aborted_connects | 0 | +------------------+-------+ 2行インセット(0.00秒) パート4: ケース1 ここで、データベースエラーログのどのパラメータがこの問題を記録するかを確認するために、意図的に5回間違ったパスワードを入力しました。 [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 エラー 1045 (28000): ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 エラー 1045 (28000): ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 エラー 1045 (28000): ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 エラー 1045 (28000): ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用: YES) [root@HE3~]# mysql -uroot -pwrongpass -h127.0.0.1 エラー 1045 (28000): ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用: YES) ここでのAborted_connectsは間違ったパスワードの問題を記録していることがわかります。 mysql> 'aborted%' のようなグローバル ステータスを表示します。 +------------------+-------+ |変数名 | 値 | +------------------+-------+ |中止されたクライアント | 19 | |接続が中止されました | 5 | +------------------+-------+ 2行インセット(0.00秒) エラーログには、このタイプのパスワード入力エラー情報も記録されます。 [警告] ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用: YES) [警告] ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用:YES) [警告] ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用:YES) [警告] ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用:YES) [警告] ユーザー 'root'@'127.0.0.1' のアクセスが拒否されました (パスワード使用:YES) パート5: ケース2 次に、セクション 3 で説明した 2 つの主要なパラメータがデータベース接続の動作に与える影響を見てみましょう。 ここでは両方のパラメータを10秒に設定します mysql>グローバルwait_timeoutを10に設定します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql>グローバルinteractive_timeoutを10に設定します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql>プロセスリストを表示します。 エラー 2006 (HY000): MySQL サーバーが消えました 接続がありません。再接続を試行しています... 接続 ID: 79 現在のデータベース: *** なし *** +----+------+-----------------+-------+--------+-------+-------+------------------+ | ID | ユーザー | ホスト | db | コマンド | 時間 | 状態 | 情報 | +----+------+-----------------+-------+--------+-------+-------+------------------+ | 79 |root | 127.0.0.1:42016 | NULL | クエリ | 0 | NULL | プロセスリストを表示 | +----+------+-----------------+-------+--------+-------+-------+------------------+ セット内の 1 行 (0.00 秒) ここに 3 つの操作があります。クライアントの数が増加していることがわかります。これは、タイムアウト パラメータによって、すでにデータに接続している接続が制御され、強制終了されるためです。 mysql> 'aborted%' のようなグローバル ステータスを表示します。 エラー 2006 (HY000): MySQL サーバーが消えました 接続がありません。再接続を試行しています... 接続 ID: 81 現在のデータベース: *** なし *** +------------------+-------+ |変数名 | 値 | +------------------+-------+ |中止されたクライアント | 22 | |接続が中止されました | 5 | +------------------+-------+ セットに2行(0.01秒) エラーログには、 [警告] db への接続 81 が中止されました: 'unconnected' ユーザー: 'root' ホスト: '127.0.0.1' (通信パケットの読み取り中にタイムアウトが発生しました) [警告] db への接続 78 が中止されました: 'unconnected' ユーザー: 'root' ホスト: '127.0.0.1' (通信パケットの読み取り中にタイムアウトが発生しました) [警告] db への接続 79 が中止されました: 'unconnected' ユーザー: 'root' ホスト: '127.0.0.1' (通信パケットの読み取り中にタイムアウトが発生しました) パート6: ケース3 この場合、最大接続数がデータベース接続の動作に与える影響を調べます。 mysql> 'max_conn%' のようなグローバル変数を表示します。 +--------------------+-------+ |変数名 | 値 | +--------------------+-------+ |最大接続エラー数 | 1000 | |最大接続数 | 1024 | +--------------------+-------+ セット内の 2 行 (0.00 秒) mysql>グローバルmax_connectionsを2に設定します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) ここで、接続が多すぎるという問題が発生していることがわかります。 [root@HE3~]# mysql -uroot -pMANAGER -h127.0.0.1 エラー 1040 (HY000): 接続が多すぎます エラーログに記録がありません パート7: ケース4 サードパーティツールのNavicat Selectの結果が出ない場合は、停止を選択すると表示されます。 クライアントの増加 mysql> 'aborted%' のようなグローバル ステータスを表示します。 +------------------+-------+ |変数名 | 値 | +------------------+-------+ |中止されたクライアント | 28 | |接続が中止されました | 10 | +------------------+-------+ セット内の 2 行 (0.00 秒) エラーログの記録 170626 16:26:56 [警告] db: 'helei1'、ユーザー: 'sys_admin'、ホスト: '192.168.1.1' への接続 109 が中止されました (通信パケットの書き込み中にエラーが発生しました) 第8部: 理由の要約
要約する これら 4 つのケースを通じて、Aborted_clients と Aborted_connects の違い、およびどのような状況でどのようなエラー ログが表示されるかを理解できます。記事の 2 番目のセクションにあるいくつかの Aborted エラーは一般的なエラーです。このようなエラーが発生した場合は、問題を迅速に特定できるように、どのような状況でどのようなエラーが発生するかを知るための理論的な知識を念頭に置いておく必要があります。著者の能力の限界と記事執筆の急ぎにより、記事には必然的に誤りや不正確な点があります。不適切な点がありましたら、読者の皆様のご批判と訂正を心からお願い申し上げます。 さて、以上がこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:
|
<<: JavaScript を使用して二分探索木を実装する方法
>>: Windows での Apache+Tomcat7 負荷分散構成方法の詳細な説明
1. インストールパッケージMYSQLサービスダウンロードアドレス:MySQL公式サイトからダウンロ...
1. 互換性以下のように表示されます。 互換性は問題ありません。IE を除き、他のブラウザは基本的に...
Linuxシステムでサービスの起動とシャットダウンを構成する1. コマンドcd /etc/init....
#!/bin/bash #SVNをダウンロード yum -y サブバージョンをインストールします ...
私たちの日常的な開発作業では、テキストのオーバーフロー、切り捨て、省略は、考慮する必要がある非常に一...
基本的な使い方 <!DOCTYPE html> <html lang="...
設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...
1. 環境VS 2019 16.9.0 プレビュー 1.0 .NET SDK 5.0.100 2. ...
以下は、Flex レイアウトを使用した棒グラフです。 HTML: <div class=&qu...
#include <asm/io.h> #define ioremap(cookie,...
目次序文1. 使用例2. 実施プロセス3. コンポーネントコード要約する序文1. cavans では...
目次sakilaをインストールするインデックススキャンソートテーブル構造インデックススキャンをソート...
目次隠れた問題適応高さのソリューションまず解決策を提示してください。Vueスタックが必要な学生はvu...
トリガーの紹介トリガーは、テーブルに関連付けられた特別なストアド プロシージャであり、テーブル内のデ...
1. はじめに最近、あるプロジェクトに取り組んでいたのですが、サーバーからクライアントに返される J...