Dọn dẹp thủ công:
Bạn có thể GIẾT người xử lý.
mysql> show full processlist;
+---------+------------+-------------------+------+---------+-------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+------------+-------------------+------+---------+-------+-------+-----------------------+
| 1193777 | TestUser12 | 192.168.1.11:3775 | www | Sleep | 25946 | | NULL |
+---------+------------+-------------------+------+---------+-------+-------+-----------------------+
mysql> kill 1193777;
Nhưng:
- ứng dụng php có thể gặp lỗi (hoặc máy chủ web, hãy kiểm tra nhật ký lỗi)
- không sửa chữa những gì không bị hỏng - nếu bạn không thiếu kết nối, hãy cứ để họ được.
Dịch vụ dọn dẹp tự động;)
Hoặc bạn định cấu hình máy chủ mysql của mình bằng cách đặt thời gian chờ ngắn hơn trên wait_timeout
và interactive_timeout
mysql> show variables like "%timeout%";
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| connect_timeout | 5 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| interactive_timeout | 28800 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| wait_timeout | 28800 |
+--------------------------+-------+
9 rows in set (0.00 sec)
Đặt bằng:
set global wait_timeout=3;
set global interactive_timeout=3;
(và cũng được đặt trong tệp cấu hình của bạn, khi máy chủ của bạn khởi động lại)
Nhưng bạn đang điều trị các triệu chứng thay vì nguyên nhân cơ bản - tại sao các kết nối lại mở? Nếu tập lệnh PHP đã hoàn thành, chúng có nên đóng lại không? Đảm bảo rằng máy chủ web của bạn không sử dụng kết nối tổng hợp ...