一般的な規則として一つのリリースのシリーズから別のリリースのシリーズにアップグレードするには、シリーズをスキップしないで次のシリーズにアップグレードすることをお勧めします。例えば、現在使用している MySQL 4.0 から新しいシリーズにアップグレードするには、5.0 あるいは 5.1 にアップグレードするのではなく MySQL 4.1 にアップグレードします。
以下の項目はアップグレードする際の必ず実施するチェックリストを示したものです。
MySQL 5.0 から 5.1 にアップグレードする前に、 項2.11.1. 「MySQL 5.0 から 5.1 へのアップグレード」、および 付録 C. MySQL Change History をお読みください。これらは MySQL 5.1 で新しく追加された機能および MySQL 5.0 と異なる機能に関する情報を提供します。MySQL 5.0 以前のリリース シリーズからアップグレードするには、MySQL 5.0 にアップグレードするまでに各シリーズから順番にアップグレードし、その後で MySQL 5.1 にアップグレードします。.MySQL 5.0 からのアップグレードに関する情報は、MySQL 5.0 Reference Manual を参照してください。以前のリリースに関しては、MySQL 3.23, 4.0, 4.1 の参照マニュアルを参照してください。
アップグレードを実施する前に、グラント
テーブルを含む mysql
データベースを格納したデータベースのバックアップを取ります。
MySQL のリリースの中にはテーブルに互換性のない変更をしている場合もあります。(弊社はこれらの変更を避けるように努めていますが、時にリリース間の互換性を取るよりも深刻な問題の修正に迫られる場合があります。)MySQL の リリースの中には新たに権限や機能を加えるためにグラント テーブルの構成に変更を加えているものもあります。
それらの変更による問題を避けるためには、MySQL の新しいバージョンにアップグレードした後に、テーブルをチェックし (必要に応じて修正する)、グラント テーブルをアップグレードして、新しい機能を利用できるようにそれらが現在の構成になっていることを確認する必要があります。項4.5.4. 「mysql_upgrade — MySQL アップグレードのテーブル チェック」 参照。
Windows 上で MySQL サーバを稼動している場合には、項2.3.14. 「Windows を使用した MySQL をアップグレードする」 を参照してください。
レプリケーションを使用している場合、レプリケーション設定のアップグレードに関する情報、項5.4.3. 「レプリケーション セットアップのアップグレード」にあります。
MySQL 5.1.9 の場合、mysqld-max サーバはバイナリのディストリビューションに含まれています。個別の MySQL-Max ディストリビューションはありません。MySQL 5.1.12 では、バイナリのディストリビューションは以前 mysqld-max に含まれていた機能を実装したサーバを搭載しています。
ユーザー定義関数 (UDF)
の所定の名前で作成して MySQL
を同じ名前の内蔵機能を実装した新しいバージョンにアップグレードした場合、その
UDF
はアクセスできなくなります。これを修正するには、DROP
FUNCTION
を使用して UDF を削除し、次に
CREATE FUNCTION
を使用して衝突しない名前の UDF
を新たに作成します。同じとこが新しいバージョンの
MySQL
が既存の機能と同名の内蔵機能を実装した場合にも言えます。サーバの異なる種類の機能に対するリファレンスの解釈を説明した規則は、項8.2.4. 「構文解析と解像度のファンクション名」
を参照してください。
MySQL のフォーマット ファイルやデータ
ファイルを MySQL
の同じリリースのバージョン内に限り同じアーキテクチャの異なるバージョン間で常に移動できます。MySQL
の動作中に文字セットを変更するには、myisamchk
-r -q
--set-collation=collation_name
をすべての MyISAM
テーブルで実行する必要があります。さもなければ、文字セットを変更することによって分類順序も変更される場合があるので、インデックスは正しく順序付けされない場合があります。
新しいバージョンの使用に懸念がある場合には、常に古い mysqld の名前を新しいバージョンをインストールする前に変更します。例えば、MySQL 5.0.13 を使用していてそれを 5.1.10 にアップグレードする場合、現在のサーバ名を mysqld から mysqld-5.0.13 に変更します。新しい mysqld に予想外の問題が発生した場合は、単にそれをシャットダウンして古い mysqld を起動するだけで済みます。
アップグレード後に、再コンパイルしたクライアント
プログラムで Commands out of sync
あるいは予想外のコア
ダンプなどの問題が発生した場合、それは多分に古いヘッダーあるいはライブラリ
ファイルをプログラムをコンパイルする際の使用したためです。この場合、mysql.h
ファイルおよび libmysqlclient.a
ライブラリの日付をチェックしてそれらが新しい
MySQL
のディストリビューションによるものであることを確認します。そうでない場合には、プログラムを新しいヘッダーおよびライブラリで再度コンパイルします。
新しい mysqld
サーバが起動しないあるいはパスワードなしで接続できないなどの問題が発生した場合には、前のインストールの古い
my.cnf
ファイルが残っていないか確認します。これは
--print-defaults
オプション
(例えば、mysqld --print-defaults)
で確認できます。このコマンドがプログラム名以外の何かを表示した場合、サーバあるいはクライアント
オペレーションに影響を及ぼすアクティブな
my.cnf
ファイルがあることになります。
新しいリリースの MySQL
をインストールする際はいつでも Perl
DBD::mysql
モジュールを再構築して再インストールするのがいいでしょう。同じことが、PHP
mysql
拡張および Python
MySQLdb
モジュールなどの他の MySQL
インターフェースにも言えます。