Bảng MyISAM rất dễ bị lỗi. Có thông tin tiêu đề trong mỗi bảng theo dõi số lượng tệp đang mở xử lý một bảng MyISAM.
Nếu mysqld gặp sự cố, bất kỳ bảng MyISAM nào có xử lý tệp đang mở sẽ không bao giờ có cơ hội giảm số lượng xử lý tệp khi mỗi lần đóng xử lý tệp. Do đó, nếu một trình xử lý tệp mới mở bảng MyISAM (tệp .MYD) và mysqld phát hiện ra sự không khớp giữa số lượng xử lý tệp mà bảng MyISAM tin là đang mở và số tệp xử lý bảng MyISAM thực sự đã mở, bảng này sẽ được tuyên bố là đã gặp sự cố.
Có bốn (4) phương pháp để xử lý điều này:
PHƯƠNG PHÁP # 1:Thiết lập sửa chữa MyISAM tự động
Xem bài đăng của tôi https://dba.stackexchange.com/a/15079/877 về cách thiết lập điều này khi khởi động lại MySQL (ngày 15 tháng 3 năm 2012)
PHƯƠNG PHÁP # 2:Sử dụng InnoDB thay vì MyISAM
InnoDB có tính năng khôi phục sự cố được tích hợp trong quá trình khởi tạo của Storage Engine. MyISAM không
PHƯƠNG PHÁP # 3:Sử dụng Aria thay vì MyISAM
Aria là sự thay thế của MariaDB cho MyISAM. Nó có các cơ chế khôi phục sự cố cho các bảng riêng lẻ.
PHƯƠNG PHÁP # 4:Không giết -9 trên mysqld
Nếu mysqld gặp sự cố, cố ý hoặc vô tình, thông tin tiêu đề cho tất cả các bảng MyISAM đang mở sẽ khiến chúng rơi vào trạng thái bị treo. Tránh phải giết mysqld theo cách thủ công.