KillMySlowQueryはMySQLサーバー上のスロークエリをKILLするPHPのツールです。
PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
README.md
kmsq.php

README.md

KillMySlowQuery

php kmsq.php [OPTIONS] [--password="パスワード"]

KillMySlowQueryはMySQLサーバー上のスロークエリをKILLするPHPのツールです。
コマンドラインから使用することを想定しています。

OPTIONS

コマンドライン引数にオプションを指定する事によってKillMySlowQueryの動作を指定することができます。

-h ホスト名

MySQLサーバーのホスト名を指定します。デフォルト値は「localhost」です。

-p ポート番号

MySQLサーバーのポート番号を指定します。デフォルト値は「3306」です。

-u ユーザー名

MySQLサーバーのユーザー名を指定します。

-d データベース名

KILLするスロークエリを調べるデータベース名(スキーマ名)を指定します。
指定しなかった場合はすべてのスキーマが対象になります。

-t 秒数

指定した秒数以上実行時間が経過しているSQLをKILLします。デフォルト値は「3」です。

-f ログファイル

KILLしたSQLがダンプされるログファイルを指定します。デフォルト値は「/tmp/kmsq.log」です。

-i 無視SQL指定

KILLしないSQLを指定することができます。
KILLしないSQLを指定するには以下の数字の合計値を指定します。

1:DDL文
2:DML文(INSERT)
4:DML文(UPDATE)
8:DML文(DELETE)

例えばDDL文とDML文(DELETE)を無視したい場合は

php kmsq.php -i 9

のようにします。
デフォルトでは「15」となっており、指定できるすべてのSQL文が無視されます。
※ つまりデフォルトではSELECT文のみがKILLの対象になるということです。

--password="パスワード"

MySQLのユーザーに対するパスワードを指定してください。
コマンドラインに直接パスワードを入力したくない場合は直接"kmsq.php"ソース内の変数"$pass"にパスワード代入して使用することもできます。

パラメータ変数

オプションで指定できるパラメータは直接接"kmsq.php"ソース内の変数で指定することもできます。
デフォルトでは以下のようになっています。

$host = 'localhost';
$port = '3306';
$user = '';
$pass = '';
$db   = '';

$time = '3';

$file = '/tmp/kmsq.log';

$ignoreDDL = true;
$ignoreInsert = true;
$ignoreUpdate = true;
$ignoreDelete = true;

使用例

ホスト「192.168.1.10」にユーザー名「root」パスワード「password」で接続し、DDL文以外の10秒以上かかっているSQLをKILLする

php kmsq.php -h 192.168.1.10 -u root --password="password" -i 1 -t 10