một vài ngày trước, diễn đàn của người dùng của tôi đột nhiên bị hỏng do sự cố về cơ sở dữ liệu. Cụ thể hơn, khi thực hiện bất kỳ truy vấn trên "forum_users" bảng, tôi nhận được thông báo lỗiBảng MySQL bị hỏng không thể sửa chữa được?
Table 'forum_users' is marked as crashed and should be repaired
Hội chợ đủ, ngoại trừ bảng này là rất bướng bỉnh và chỉ không muốn được sửa chữa ;-) Chạy " SỬA CHỮA TABLE forum_users" mang lại cho tôi
Error : Table 'forum_users' is marked as crashed and should be repaired
status : Table is already up to date
cùng xảy ra nếu tôi chạy
mysqlcheck --verbose --repair
trên bàn trong câu hỏi. Lý do cuối cùng cho vấn đề có vẻ là rằng nếu tôi chạy lệnh MySQL
SHOW TABLE STATUS
nó nói với tôi rằng forum_users là một phiên bản 9 bảng MyISAM trong khi tất cả các bảng khác là phiên bản 10. Cuối cùng tôi cố gắng bán phá giá toàn bộ bảng , hy vọng rằng tôi có thể sau đó mọi chuyện có lẽ dọn dẹp "bằng tay" và tải lại nó bằng tay, nhưng mysqldump từ chối để đi xa hơn dòng đầu tiên trong bảng với cùng lý do:
mysqldump: Error 1194: Table 'forum_users' is marked as crashed and
should be repaired when dumping table `forum_users` at row: 1
ở giai đoạn này, tôi đã đạt đến các giới hạn của kỹ năng quản lý cơ sở dữ liệu nghèo nàn của tôi và thực sự có thể làm với một số trợ giúp ... Cảm ơn rất nhiều trước cho bất kỳ gợi ý nào!
Martin
myisamchk -r -q tbl_name Điều này cố gắng sửa chữa tệp chỉ mục mà không cần chạm vào tệp dữ liệu – Mihai
Cảm ơn rất nhiều vì đề xuất. Vấn đề là tôi không có quyền truy cập shell vào máy chủ cơ sở dữ liệu, được duy trì bởi ISP của tôi (các mạng cặp). Cách duy nhất tôi có thể tương tác với cơ sở dữ liệu là kết nối với nó bằng mysql (hoặc bất kỳ thứ gì) hoặc bằng cách sử dụng phpMyAdmin. Tôi sẽ hỏi ISP nếu có cách nào để họ truy cập trực tiếp vào các tệp cơ sở dữ liệu ... – Martin
http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html Xem tại đây trường hợp bạn có quyền truy cập shell. – Mihai