MySQL
のリリースによっては、新たに権限を追加するとき、または新たな機能をサポートするときに、mysql
データベースのシステム
テーブルのストラクチャを変更できます。新しいバージョンの
MySQL にアップグレードするときは、システム
テーブルも同様に更新し、ストラクチャが最新であることを確かめる必要があります。これをしないと、この利点を活用できません。まず、mysql
データベースをバックアップし、次の手順に従います。
ノート:MySQL 5.1.7 以降は mysql_upgrade を使用してください。mysql_fix_privilege_tables と mysql_upgrade と置き換わりました。 項4.5.4. 「mysql_upgrade — MySQL アップグレードのテーブル チェック」 を参照こと。
Unix または Unix のようなシステム環境では、mysql_fix_privilege_tables スクリプトでシステム テーブルを更新します。
shell> mysql_fix_privilege_tables
このスクリプトはサーバが稼動しているときに実行してください。ローカル
ホストでroot
で稼動しているサーバに接続するためです。root
アカウントでパスワードが必要な場合には、コマンドラインで次のようにパスワードを指します。
shell> mysql_fix_privilege_tables --password=root_password
mysql_fix_privilege_tables
スクリプトは、必要に応じて現行のフォーマットに合わせてシステム
テーブルを変換するアクションを行います。実行中に
Duplicate column name
という警告がでることがありますが、これは無視します。
スクリプトを実行後、サーバをシステム終了し、再起動します。
Windows システム環境では、 MySQL
配布に、mysql_fix_privilege_tables.sql
という SQL
スクリプトが含まれていて、これは、mysql
のクライアントを使用して実行します。たとえば、MySQL
を C:\Program Files\MySQL\MySQL Server
5.1
でインストールした場合のコマンドは次のようになります。
C:\>cd "C:\Program Files\MySQL\MySQL Server 5.1"
C:\>bin\mysql -u root -p mysql
mysql>SOURCE scripts/mysql_fix_privilege_tables.sql
mysql
コマンドで、root
のパスワード入力を指示されたら、パスワードを入力します。
インストールした場所が別のディレクトリである場合は、適宜パスを調整します。
Unix の手順では、mysql で
mysql_fix_privilege_tables.sql
のステートメントの処理中に、Duplicate
column name
という警告が出ますが、これは無視します。
スクリプトを実行後、サーバをシステム終了し、再起動します。