mysql
Linuxシェルから接続します。時々、SELECT
大きすぎるクエリを実行します。それは印刷され、印刷されます、そして私はこれが私が意図したものではないことをすでに知っています。クエリを停止します。
打撃Ctrl+C
(数回)が殺しmysql
完全に、私は再接続する必要がありますので、バックシェルに私を取ります。
mysql
自分自身を殺すことなくクエリを停止することは可能ですか?
mysql
Linuxシェルから接続します。時々、SELECT
大きすぎるクエリを実行します。それは印刷され、印刷されます、そして私はこれが私が意図したものではないことをすでに知っています。クエリを停止します。
打撃Ctrl+C
(数回)が殺しmysql
完全に、私は再接続する必要がありますので、バックシェルに私を取ります。
mysql
自分自身を殺すことなくクエリを停止することは可能ですか?
回答:
mysql>show processlist;
mysql> kill "number from first col";
mysql
印刷中です...プロンプトが表示されません
KILL QUERY
がKILL
、この場合よりも使用する方が少し好ましいと思います。そうすれば、クエリは削除されますが、接続は削除されません。
KILL
が、あなたは実行することができます:CALL mysql.rds_kill(12345)
mysqlに接続する
mysql -uusername -p -hhostname
完全なプロセスリストを表示:
mysql> show full processlist;
+---------+--------+-------------------+---------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+--------+-------------------+---------+---------+------+-------+------------------+
| 9255451 | logreg | dmin001.ops:37651 | logdata | Query | 0 | NULL | show processlist |
+---------+--------+-------------------+---------+---------+------+-------+------------------+
特定のクエリを強制終了します。ここid = 9255451
mysql> kill 9255451;
権限が拒否された場合は、次のSQLを試してください。
CALL mysql.rds_kill(9255451)
mysqladmin
利用できる場合は、クエリのリストを取得できます。
> mysqladmin -uUSERNAME -pPASSWORD pr
+-----+------+-----------------+--------+---------+------+--------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------------+--------+---------+------+--------------+------------------+
| 137 | beet | localhost:53535 | people | Query | 292 | Sending data | DELETE FROM |
| 145 | root | localhost:55745 | | Query | 0 | | show processlist |
+-----+------+-----------------+--------+---------+------+--------------+------------------+
次に、長時間実行クエリをホストしているmysqlプロセスを停止します。
> mysqladmin -uUSERNAME -pPASSWORD kill 137
この質問の著者は、通常、MySQLが出力を印刷した後でないと、間違ったクエリが実行されたことに気づきます。すでに述べたように、この場合Ctrl-C
は役に立ちません。ただし、出力が印刷される前にキャッチすると、現在のクエリが中止されることに気づきました
。例えば:
mysql> select * from jos_users, jos_comprofiler;
MySQLは上記の2つのテーブルのデカルト積を生成するのに忙しくなり、MySQLが画面に出力を印刷していない(プロセスの状態はデータの送信中)ことに気付くので、次のように入力しますCtrl-C
。
Ctrl-C -- sending "KILL QUERY 113240" to server ...
Ctrl-C -- query aborted.
ERROR 1317 (70100): Query execution was interrupted
Ctrl-C
同様に、UPDATE
クエリを停止するために使用できます。