Thursday, June 6, 2013

MySQLのチェック表

Original post: http://anothermysqldba.blogspot.com/2013/06/mysql-check-table.html

MySQLのチェックtablesコマンドは、次の操作を実行したい人のために非常に有用である: 

  • バージョンの互換性の確認
  • データの整合性をチェックする
  • アップグレード
  • 一般的なテーブルエラー
プロセスは十分に簡単です: 

> 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オプション(またはオプションなし)を追加したときに、 "チェック表"コマンドは実際にのみ適用されます。 、CHANGED、FAST MEDIUMとEXTENDEDオプションはすべてのInnoDBは無視されます。 今、あなたが自分を求めている場合、どのようなInnoDBのはどうでしょうか? なぜMySQLはInnoDBエンジンでデータの整合性を無視するでしょうか? 深呼吸をしてリラックスし、InnoDBがあるACIDの苦情 、ACIDは" 頭字語の原子性のために立って、 一貫性 、独立 、および耐久性。 " だから、それはまだあなたのテーブルにいくつかの洞察力か、確認情報を提供できるため、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の設定ユーティリティを 。 私は以前のブログ記事でそれを設定する方法の例があります: 
http://anothermysqldba.blogspot.com/2013/05/mysql-users-grants-mysqlconfigeditor.html 

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

$ mysqlcheckの - ヘルプが使用可能なオプションの完全なリストを提供します。 
さて、あなたは、あなたのすべてのテーブルをチェックするcrontabファイルおよび/またはスクリプトでパスワードを保つことができます。 

ドキュメント: