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