スクリプトのありか
とても長い時間滞留し続けるクエリがあるけど、MySQL自体の設定を変更してタイムアウト値を短くすることはできない。そんな場合に使えるスクリプトです。
使い方
スクリプトをエディタで開いて、DB接続情報、タイムアウト(SQLの滞留時間)秒、対象とするクエリを変更してください。
DB_HOST="hogehoge_host01";
DB_USER="db_user";
DB_PASS="db_password"
GREP_STR="SELECT";
TIME_OUT="180";
とりあえず今はSELECT全部対象です。
ちなみに23行目の
echo $SHOW | $MYSQL | grep "$GREP_STR" > $TMP1
↓
echo $SHOW | $MYSQL | grep "$GREP_STR" | grep -v "hogehoge" > $TMP1
とかすれば除外条件を追加できます。
crontab等に設定して定期的にkillさせるといい感じです
だれかのお役にたてば。