この記事では主に、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 負荷分散構成方法の詳細な説明
この記事の例では、WeChatアプレットで画像コントロールを選択するための具体的なコードを参考までに...
目次非同期を理解するフェッチ(url)レスポンス.json() asyncとawaitを組み合わせる...
みなさんこんにちは。今日は、純粋な CSS を使用して Google マテリアル デザインのテキスト...
起源最近、私は要件 A に取り組んでいます。そこには、次のように記述される小さな機能ポイントがありま...
1. 記事タイトルリストの右側に日付を表示する方法:コードをコピーコードは次のとおりです。 &l...
目次1. ショッピングカートの例2. コードの実装3. まとめ1. ショッピングカートの例一連の学習...
目次1. はじめに2. GitHub 3. 基本構成プロジェクトディレクトリパッケージ.json c...
MySQLデータベースをダウンロードするには、https://dev.mysql.com/down...
今日、会社の Springboot プロジェクトは、テストのためにテスト サーバーにデプロイする準備...
1. モジュールをインポートし、検証状態を定義する PIL から Image、ImageDraw、...
この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...
1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...
勉強や仕事で FTP サーバーを頻繁に使用する場合は、起動時に自動的に起動するように設定できます。設...
今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。...
序文ご存知のとおり、HTML5 はインターネット コミュニティ全体に標準を提供する組織である Wor...