2012-02-02 32 views
6

Tôi nhận thấy rằng khi phpMyAdmin mở một DB nó sẽ hiển thị ngay lập tức nếu một bảng đã bị lỗi hay không. Nó do đó dường như với tôi rằng phpMyAdmin không chạy một CHECK TABLE hoặc ANALYZE TABLE.Kiểm tra MySQL cho bảng bị lỗi

Có ai biết những gì nó làm để có được thông tin này một cách nhanh chóng và hiệu quả?

Trả lời

5

Tôi đặt cược rằng

SHOW TABLE STATUS FROM `db` 

là điều bạn đang tìm kiếm.

Hãy xem this dòng. Tôi nghĩ rằng nếu ENGINE là null (trống), có thể là do bảng bị hỏng

+0

Có thể có những trường hợp hữu ích, nhưng không phải trong trường hợp của tôi. 'SHOW TABLE STATUS' không đưa ra bất kỳ sự khác biệt nào về trạng thái của các bảng mà tôi đã bị hỏng. – mc0e

3

Nếu bạn có quyền truy cập hệ vỏ, tiện ích mysqlanalyze có thể hữu ích.

mysqlanalyze dbname 

Official Documentation

3
show table status where comment like '%crash%'; 
+0

Tôi thích điều này tốt hơn câu trả lời được chấp nhận, bởi vì nó không rõ ràng trong câu trả lời được chấp nhận rằng bạn có thể dễ dàng sử dụng LIKE trong bối cảnh của một tuyên bố SHOW. (Ngoài ra, tôi thích COMMENT! = "".) – HoldOffHunger

0

Cách hiệu quả nhất mà tôi đã tìm thấy là sử dụng công cụ dòng lệnh mysqlcheck:

mysqlcheck -u mydbuser -p mydbname

này sẽ truy cập mydbname sử dụng người dùng mydbuser và khiến cho điều đó mật khẩu của người dùng. Sau đó nó sẽ kiểm tra từng bảng trong cơ sở dữ liệu được chỉ định.

Xem https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html

Lưu ý: đây không phải là cách phpMyAdmin hiện nó, vì vậy đây không phải là một câu trả lời đúng cho câu hỏi ban đầu, nhưng tôi đặt này ở đây bởi vì Google sẽ gửi cho các tìm kiếm mysql show crashed tables đây.

Các vấn đề liên quan