2016-07-07 14 views
2

私はmysqlデータベースでいくつかのクエリを実行し、結果を処理してそれに応じてメールを送信するシェルスクリプトを持っています。このスクリプトは15分ごとに24時間毎に実行されます。シェルスクリプトの中に私は単にコマンドを使用してDBに接続してい 「のmysql -uusername -Ppasswordデータベースは-N -e 『一部のクエリはここに行く』データベース接続が多すぎますmysql

私が知りたいすべてがこれを行う、ということです-s私はこのスクリプトを永久に実行しているので、スクリプトはdb接続リークで何かをしなければなりません。 次のクエリを実行すると、接続の値が15分ごとに1ずつ増えることがわかります。 '%Con%'のようなステータスを表示します。

+----------------------------------------+-------+ 
| Variable_name       | Value | 
+----------------------------------------+-------+ 
| Aborted_connects      | 4  | 
| Com_show_contributors     | 0  | 
| Connections       | 804 | 
| Max_used_connections     | 152 | 
| Performance_schema_cond_classes_lost | 0  | 
| Performance_schema_cond_instances_lost | 0  | 
| Ssl_client_connects     | 0  | 
| Ssl_connect_renegotiates    | 0  | 
| Ssl_finished_connects     | 0  | 
| Threads_connected      | 14 | 
+----------------------------------------+-------+ 

ある時点でクラッシュしますか。値が決して下がらないので。私は値がdbに存在する接続の総数を示していることを知っています。しかし、Max_used_connectionsは同じままです。 または、シェルスクリプトからdb接続を閉じる方法はありますか? connections server status variable上のMySQLのドキュメントとして

+5

それぞれの接続を適切に閉じる必要があります – JYoThI

+2

MySQLイベントを使用して接続を回避することを検討してください。これを読む。 https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html –

答えて

4

氏は述べています:MySQLサーバへの接続試行(成功したかどうか)の

数。

これは、MySQLサーバを最後に再起動してからの接続試行回数を示す統計番号です。

threads_connected status variableには、現在開いている接続の数(あなたの場合は14)が表示されます。このステータス変数がmax_connections server SYSTEM variableに等しい場合、接続エラーメッセージが多すぎます。

+0

** MySQLサーバへの接続試行回数(成功したかどうか)** - 制限はありますか? 。 ** threads_connected **変数はスクリプトとは関係ありません。返信いただきありがとうございます、あなたが指摘した文書をチェックします。 – Raj

+0

これは統計的な数値だけです。最大値に達すると単純にオーバーフロー(再起動)します。しかし、リンクされたMySQLのドキュメントは、変数のデータ型を示しています。これはその制限を意味しています。 – Shadow

+0

Threads_connectedは、現在開いているすべての接続を一覧表示します。スクリプトの実行中に 'show variables'クエリを実行すると、threads_connected変数にはコマンドラインクライアントによる接続が含まれます。 – Shadow

関連する問題