Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีหยุด Query ที่กำลังรันอยู่ใน MySQL (KILL)

คำสั่งหลัก: KILL

KILL processId;

หา Process ID

mysql> SHOW PROCESSLIST;
+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+
| Id | User            | Host            | db       | Command | Time   | State                  | Info             |
+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+
| 4  | event_scheduler | localhost       | NULL     | Daemon  | 221718 | Waiting on empty queue | NULL             |
| 47 | root            | localhost:60722 | business | Query   | 0      | starting               | show processlist |
+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+
2 rows in set (0.03 sec)

หยุด Query ID 47

mysql> KILL 47;
ERROR 1317 (70100): Query execution was interrupted

วิธีอื่น: mysql.rds_kill (สำหรับ Amazon RDS)

mysql> CALL mysql.rds_kill(47);
ERROR 2013 (HY000): Lost connection to MySQL server during query

ข้อควรระวัง

  • ต้องมีสิทธิ์ PROCESS และ SUPER (หรือ CONNECTION_ADMIN MySQL 8+)
  • KILL ตัวเองได้ (Session ของตัวเอง)
  • KILL Session ของคนอื่น ต้องมีสิทธิ์ SUPER
  • หลัง KILL จะได้ Error 1317 (Interrupted) หรือ 2013 (Lost connection) เป็นเรื่องปกติ