linux mysql清除数据库所有表_MySQL修复指定数据库下的所有表
mysql,mariadb,percona
這幾天數(shù)據(jù)庫(kù)頻繁crash,查看日志發(fā)現(xiàn)類似如下的錯(cuò)誤:
[ERROR] mysqld: Table './database/pre_forum_forumfield' is marked as crashed and should be repaired
1
[ERROR]mysqld:Table'./database/pre_forum_forumfield'ismarkedascrashedandshouldberepaired
。
于是乎自己查看了下,出問(wèn)題的表還真不少,至少有二十幾個(gè),而且分散在不同數(shù)據(jù)庫(kù)中。對(duì)于MyISAM存儲(chǔ)引擎和ARCHIVE存儲(chǔ)引擎來(lái)說(shuō),可以通過(guò)REPAIR TABLE來(lái)輕松的修復(fù)該表,如果覺(jué)得麻煩,phpmyadmin也提供了一鍵功能,選中指定的表選擇repair即可。但我這有如此多的表就不能一次性全部解決嗎?當(dāng)然,辦法是有的。
mysqlcheck -uroot -p --auto-repair -o database
1
mysqlcheck-uroot-p--auto-repair-odatabase
其中u為用戶名,p為密碼,此處為空表示執(zhí)行命令后輸入,o指定數(shù)據(jù)庫(kù)名稱,這條命令可以一次性搞定database庫(kù)下的所有需要repair的表。也就是說(shuō)當(dāng)你的MySQL修復(fù)指定數(shù)據(jù)庫(kù)下的所有表時(shí),可以用上面的方法
mysqlcheck -A -uroot -p --auto-repair
1
mysqlcheck-A-uroot-p--auto-repair
與上面的命令類似,唯一的區(qū)別是A,表示所有數(shù)據(jù)庫(kù)中的所有的表,當(dāng)你的MySQL需要修所有數(shù)據(jù)庫(kù)下的表的時(shí)候,這個(gè)更方便。
mysqlcheck -uroot -p --repair -o database
mysqlcheck -A -uroot -p --repair
1
2
mysqlcheck-uroot-p--repair-odatabase
mysqlcheck-A-uroot-p--repair
上面這兩天記錄經(jīng)過(guò)本人測(cè)試月可以解決我的問(wèn)題,唯一的區(qū)別在于–repair和–auto-repair的區(qū)別,查看了幫助之后并沒(méi)發(fā)現(xiàn)什么本質(zhì)上的區(qū)別本人也就沒(méi)在深究,如果以后有明確發(fā)現(xiàn)在補(bǔ)充吧。
–auto-repair
1
–auto-repair
如果某個(gè)被檢查的表破壞了,自動(dòng)修復(fù)它。檢查完所有表后自動(dòng)進(jìn)行所有需要的修復(fù)
–repair,-r
1
–repair,-r
執(zhí)行可以修復(fù)大部分問(wèn)題的修復(fù),只是唯一值不唯一時(shí)不能修復(fù)。
總結(jié)
以上是生活随笔為你收集整理的linux mysql清除数据库所有表_MySQL修复指定数据库下的所有表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java swt 画按钮_向表中添加按钮
- 下一篇: dw8与mysql的连接,VS2019连