2013年6月6日星期四

MySQL的檢查表



MySQL的檢查表的命令是非常有用的,誰想要做到以下幾點:
  • 檢查版本兼容性
  • 檢查數據一致性
  • 升級
  • 一般表錯誤
這個過程是很簡單的:

> show tables;
+-----------------+
| Tables_in_world |
+-----------------+
| City |
| Country |
| CountryLanguage |
+-----------------+

> check table City\G
*************************** 1. row ***************************
Table: world.City
Op: check
Msg_type: status
Msg_text: OK


這是一個很好的任務保持更新,所以大家都知道可能出現的錯誤。 一個可能的問題是,這個工具真的專注於MyISAM和InnoDB的。 如果你使用它,“檢查表”命令對於InnoDB真的只適用於當您添加QUICK選項(或任何購股權)。 對於InnoDB速度快,更改中和擴展選項都被忽略。 現在,如果你問自己,什麼InnoDB的? 為什麼MySQL的InnoDB引擎忽略了數據的一致性? 做一個深呼吸,放鬆,InnoDB是投訴的酸 ,酸“ 的首字母縮寫站在原子 , 一致性 ,隔離性和耐久性。 “ 所以,不要忽視檢查InnoDB表,因為它仍然可以為您提供一些見解或確認表。 請記住,如果一個InnoDB表被損壞服務器將關閉,以保護數據。 您只需為您的降壓MyISAM表,這個工具就會得到更多。

希望你得到的回應“OK”或“表已經更新了,”否則,你需要運行修復表修復表。

那麼,什麼是提供給我們的選項,這樣你就可以做到這一點往往容易。
下面的文檔鏈接還將為您提供與幾個社區驅動的自動選擇。 您可以編寫腳本的過程和方便地顯示表,然後申請檢查表的所有結果。 它只是似乎更容易給我,雖然使用的工具為您提供。


$ mysqlcheck -u root -p --databases world --fast
Enter password:
world.City OK
world.Country OK
world.CountryLanguage OK

$mysqlcheck -u root -p --databases world --fast --check-only-changed
Enter password:
world.City OK
world.Country OK
world.CountryLanguage OK

現在,這是簡單而直接的,但它也適合於另一個問題,怎麼樣的密碼?

你應該創建一個用戶沒有密碼,允許檢查表,只是讓你不必把一個密碼到您的腳本或cron作業? 你要防止密碼圍坐。mysql_history文件,以及。 所以再次利用的工具,為您提供。MySQL 5.6的介紹了MySQL的配置實用程序 。 我有一個例子,如何設置它在以前的博客文章:

mysqlcheck --login-path=local --databases world --fast --check-only-changed
world.City OK
world.Country OK
world.CountryLanguage OK

mysqlcheck的 - 幫助將提供給你可供選擇的完整列表。
現在,你可以檢查所有表,使你的密碼crontab文件和/或腳本。

文檔: