7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQLで残り続けるSQLプロセスを強制的に終了させるスクリプト

Posted at

スクリプトのありか

とても長い時間滞留し続けるクエリがあるけど、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" > $TMP1echo $SHOW | $MYSQL | grep "$GREP_STR" | grep -v "hogehoge" > $TMP1

とかすれば除外条件を追加できます。

crontab等に設定して定期的にkillさせるといい感じです

だれかのお役にたてば。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?