table lock ต้องรอให้ process แรกทำงานเสร็จก่อนถึงจะทำคำสั่งต่อไปได้ครับ
น่าจะต้อง config my.cnf ให้ยืดหยุ่นกว่านี้หน่อยครับ
ลองใช้คำสั่งตรวจสอบ innodb status ดูนะครับ
mysql> SHOW ENGINE INNODB STATUS \G;
หรือไม่ก็ตรวจสอบ ตัวแปรของ lock_wait_timeout ว่ากำหนดไว้เท่าไหร่
ตัวอย่างนะครับ
set global lock_wait_timeout=400;
mysql> show variables like 'lock_w%';
+-------------------+----------+
| Variable_name | Value |
+-------------------+----------+
| lock_wait_timeout | 31536000 |
+-------------------+----------+
ไฟล์ my.cnf
ปล.
* Version 5.5.13 ขึ้นไป จะมีการตรวจเช็คเพิ่ม และอาจจะเกิดกรณีนี้ได้ เช่น
* Show processlist with process stuck waiting for metadata lock
* show engine innodb status showing 2 stuck transactions
* Requested selects from performance_schema both returing empty sets