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

ฉันจะฆ่ากระบวนการทั้งหมดใน MySQL "แสดงรายการกระบวนการ" ได้อย่างไร


เราสามารถฆ่ากระบวนการด้วยความช่วยเหลือของคำสั่ง 'kill' อย่างไรก็ตาม คุณต้องฆ่ากระบวนการเหล่านั้นทีละตัว เนื่องจาก MySQL ไม่มีคำสั่ง kill จำนวนมาก

หากต้องการตรวจสอบจำนวนกระบวนการ ให้ใช้ 'แสดงรายการกระบวนการ'

mysql> แสดงรายการกระบวนการ

ต่อไปนี้เป็นผลลัพธ์

<ก่อนหน้า>+----+-----------------+-----------------+---- ------------------------+------+--------------------------------------+------ --------------+| รหัส | ผู้ใช้ | เจ้าของที่พัก | db | คำสั่ง | เวลา | รัฐ | ข้อมูล |+----+-----------------+-----------------+------ +----------------------+------+--------------------------------------+------- ----+| 4 | event_scheduler | localhost | NULL | ภูต | 7986 | รอคิวว่าง | NULL || 8 | ราก | localhost:65180 | ทดสอบ | แบบสอบถาม | 0 | เริ่มต้น | แสดงรายการ |+----+-----------------+-----------------+----- ------------------------+------+--------------------------------------+------ ------------+2 แถวในชุด (0.00 วินาที)

หากต้องการฆ่ากระบวนการที่มีการใช้งานนานกว่า 10 วินาที ต่อไปนี้คือแบบสอบถาม ที่นี่เรากำลังฆ่ากระบวนการด้วยรหัส “4”

mysql> เลือก concat('kill ',4,';') -> from information_schema.processlist -> where TIME> 10;

นี่คือผลลัพธ์

+-----------------------+ครั้งเดียว;| concat('kill ',4,';') |+-----------------------+| ฆ่า 4; |+-----------------------+1 แถวในชุด (0.00 วินาที)

คุณยังสามารถลองใช้แบบสอบถาม MySQL ต่อไปนี้เพื่อฆ่ากระบวนการทั้งหมดได้

mysql -e "แสดงรายการกระบวนการทั้งหมด" -ss | awk '{พิมพ์ "KILL "$1";"}'| mysql