実行中のMySQLクエリを停止するにはどうすればいいですか? 質問する

実行中のMySQLクエリを停止するにはどうすればいいですか? 質問する

Linux シェルから接続しますmysql。時々、SELECT大きすぎるクエリを実行します。クエリは何度も出力されますが、これは意図したものではないことはわかっています。クエリを停止したいと思います。

Ctrl+C(数回)攻撃するとmysql完全に死亡し、シェルに戻ってしまうので、再接続する必要があります。

クエリ自体を終了せずにクエリを停止することは可能ですかmysql?

ベストアンサー1

mysql> show processlist;
+----+------+-----------+-----+---------+------+---------------------+------------------------------+----------+
| Id | User | Host      | db  | Command | Time | State               | Info                         | Progress |
+----+------+-----------+-----+---------+------+---------------------+------------------------------+----------+
| 14 | usr1 | localhost | db1 | Query   |    0 | starting            | show processlist             |    0.000 |
| 16 | usr1 | localhost | db1 | Query   |   94 | Creating sort index | SELECT  `tbl1`.* FROM `tbl1` |    0.000 |
+----+------+-----------+-----+---------+------+---------------------+------------------------------+----------+
2 rows in set (0.000 sec)

mysql> kill 16;
Query OK, 0 rows affected (0.004 sec)

mysql> show processlist;
+----+------+-----------+-----+---------+------+----------+------------------+----------+
| Id | User | Host      | db  | Command | Time | State    | Info             | Progress |
+----+------+-----------+-----+---------+------+----------+------------------+----------+
| 14 | usr1 | localhost | db1 | Query   |    0 | starting | show processlist |    0.000 |
+----+------+-----------+-----+---------+------+----------+------------------+----------+
1 row in set (0.000 sec)

おすすめ記事