KillMySlowQueryはMySQLサーバー上のスロークエリをKILLするPHPのツールです。
Switch branches/tags
Nothing to show
Clone or download
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