2012-02-02 69 views
6

我注意到,当phpMyAdmin打开一个数据库时,它会立即显示表是否崩溃。因此,在我看来,phpMyAdmin没有运行CHECK TABLEANALYZE TABLEMySQL检查崩溃表

有没有人知道它如何快速有效地获取此信息?

回答

5

我敢打赌,

SHOW TABLE STATUS FROM `db` 

就是你要找的东西。

看看this一行。我认为,如果ENGINE为空(空),可能是因为表崩溃了

+0

可能有些情况下,这是有帮助的,但不是在我的。 'SHOW TABLE STATUS'不会为我损坏的表格提供任何状态差异。 – mc0e 2017-09-22 03:14:31

3

如果您有shell访问权限,mysqlanalyze实用程序可以提供帮助。

mysqlanalyze dbname 

Official Documentation

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

我比接受的答案更喜欢这一点,因为在接受的答案中并不明显,您可以在SHOW语句的上下文中轻松使用LIKE。 (另外,我更喜欢COMMENT!=“”。) – HoldOffHunger 2017-11-28 19:04:34

0

最有效的方法,我发现是使用命令行mysqlcheck工具:

mysqlcheck -u mydbuser -p mydbname

这将使用用户mydbuser和提示访问mydbname用户的密码。然后它会检查指定数据库中的每个表。

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

注:这是的phpMyAdmin不能怎么做的,所以这不是严格对原问题的答案,但我把这个在这里,因为谷歌将搜索mysql show crashed tables这里。