MySQL のアップグレードでは、その度に、mysql_upgrade を実行します。これにより、データベース内のテーブルにおける最新の MySQL Server との互換性をチェックすることができます。該当テーブルが非互換の場合は、チェックの対象になり、問題があれば、そのテーブルを修正します。mysql_upgrade コマンドは、システム テーブルのアップグレードも行うため、新たな権限と追加機能を使用できるようになります。
チェックと修正が済んだテーブルは、最新のMySQL バージョン番号とマーク (特徴付け) される。これにより、次に同じバージョンのサーバで mysql_upgrade を立ち上げるときに、そのテーブルをチェックして修正する必要があるかどうかを確かめる必要がなくなります。
mysql_upgrade では、データ
ディレクトリの
mysql_upgrade.info
というファイルに MySQL
のバージョン番号も保存します。これは、すべてのテーブルがチェック済みであるかどうかを簡単に調べます。これにより、リリースでテーブル
チェックをスキップするようになります。ファイルを無視するには、--force
オプションを使用します。
テーブル チェックおよび修復、システム テーブルのアップグレードを行なうには、mysql_upgrade で次のコマンドを実行します。
mysqlcheck --check-upgrade --all-databases --auto-repair mysql_fix_privilege_tables
mysql_upgrade コマンドは、古い方、つまり mysql_fix_privilege_tables より優先です。MySQL 5.1.7 では、シェル スクリプト として mysql_upgrade が加えられ、Unix システムだけで機能します。MySQL 5.1.10 以降は、mysql_upgrade は実行可能なバイナリとして、すべてのシステムで使用できます。mysql_upgrade をサポートしているものより古いシステムでは、手動で mysqlcheck コマンドを実行し、システム テーブルのアップグレードを行ないます。詳細は 項4.5.2. 「mysql_fix_privilege_tables — MySQL システム テーブルのアップグレード」 を参照してください。
何がチェックされるか、に関する詳細は、CHECK
TABLE
ステートメントの FOR
UPGRADE
オプションに関する説明を参照してください。(項12.5.2.3. 「CHECK TABLE
構文」)
mysql_upgrade を使用するには、サーバが起動していることを確認し、次のように呼び出します。
shell> mysql_upgrade [options
]
mysql_upgrade
はコマンドライン、およびオプション
ファイルの [mysql_upgrade]
グループからオプションを読み取ります。これは次のオプションをサポートします。
他のオプションは、mysqlcheck
および mysql_fix_privilege_tables
へ渡される。たとえば、--password[=
オプションは指定しなければならない可能性がある。
password
]