MYSQL 接続タイムアウトの原因を確認する方法と MYSQL を監視する方法
最近、接続が多すぎるためにデータベースが突然停止したことがわかりました
データベース内の多くのプロセスが待機しており、多くのテーブルがロックされています。 。
1. Web サイトに長時間の接続がないことを確認しました。
2. interactive_timeout と wait_timeout は両方とも 20 秒に設定されています。
問題はデータベース操作によって引き起こされるはずですが、始めてみるべきですか?
リアルタイムで表示せずに、どの接続がinteractive_timeout と wait_timeout で設定された最大値を超えているかを確認する方法はありますか?
またはどの接続で問題が発生しましたか
このように記録すると、原因を見つけやすくなりますか?それとも何か他の方法はありますか?アドバイスをお願いします。 。ありがとうございます
-----解決策---------
通常、速度を上げるためにどのプログラムを改善する必要があるかを監視するために、実行に時間がかかる SQL ステートメントを記録する必要があります。
方法は非常に簡単です:
mysql 設定ファイルを見つけて段落を追加するか、次の段落を見つけてコメントを削除します
SQL コード
log_slow_queries = /var/blogguy.cn/log/mysql/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes = true
最初 1 行目はレコード ファイルのアドレスを指定し、2 行目は長いクエリの時間とこの時間をチェックした後のレコードを指定し、3 行目はインデックスなしのクエリを記録するかどうかを指定します。
mysql を保存して再起動すると、有効になります。