mysql接続数が多すぎます
django web開発でこのエラーに遭遇しました.
多分mysql接続が多すぎて、
mysqlのプロセス(コマンド)を表示すると、確かにsleepのプロセスがたくさんあります.
一、原因
1.直ちに接続を閉じていない
リソースを使用するには、必ず解放してください.
2.一度に接続しすぎてmysql自体が耐えられなかった
3.最適化が不十分で、クエリ時間が長すぎる
二、解決方法
解決1:
1.使用後直ちに接続を閉じる
2.長い接続ではなく短い接続を使用
一度使い終わったら、一度閉じます
解決2:
1.mysqlがより多くの接続をサポートするように設定する
1.1現在の接続数の表示
1.2プロファイルの追加:
1.3再起動
2.sleepのタイムアウト時間の設定
現在設定されているタイムアウト時間を表示します.
show variables like “%timeout%”;
| interactive_timeout | 28800 | | lock_wait_timeout | 31536000 | | net_read_timeout | 30 | | net_write_timeout | 60 | | slave_net_timeout | 3600 | | wait_timeout | 28800 |
プロファイルに次を追加します.
wait_timeout=120interactive_timeout=120
そして再起動
解決3:
SQLの最適化
多分mysql接続が多すぎて、
mysqlのプロセス(コマンド)を表示すると、確かにsleepのプロセスがたくさんあります.
一、原因
1.直ちに接続を閉じていない
リソースを使用するには、必ず解放してください.
2.一度に接続しすぎてmysql自体が耐えられなかった
3.最適化が不十分で、クエリ時間が長すぎる
二、解決方法
解決1:
1.使用後直ちに接続を閉じる
2.長い接続ではなく短い接続を使用
一度使い終わったら、一度閉じます
解決2:
1.mysqlがより多くの接続をサポートするように設定する
1.1現在の接続数の表示
show variables like 'max_connections';
1.2プロファイルの追加:
max_connections = 1000
1.3再起動
2.sleepのタイムアウト時間の設定
現在設定されているタイムアウト時間を表示します.
show variables like “%timeout%”;
| interactive_timeout | 28800 | | lock_wait_timeout | 31536000 | | net_read_timeout | 30 | | net_write_timeout | 60 | | slave_net_timeout | 3600 | | wait_timeout | 28800 |
プロファイルに次を追加します.
wait_timeout=120interactive_timeout=120
そして再起動
解決3:
SQLの最適化