一般的な規則として、あるリリースシリーズから別のリリースシリーズにアップグレードするときは、シリーズをスキップしないで次のシリーズに移行するようにしてください。MySQL 5.0 の前のリリースシリーズからアップグレードするときは、MySQL 5.0 に達するまで順番に続けて各リリースシリーズにアップグレードしてから、MySQL 5.1 にアップグレードします。たとえば、現在 MySQL 4.0 を使用していて、新しいシリーズにアップグレードする場合は、5.0 などにアップグレードする前にまず MySQL 4.1 にアップグレードします。MySQL 5.0 へのアップグレードについては、MySQL 5.0 Reference Manual を参照してください。以前のリリースについては、MySQL 3.23, 4.0, 4.1 リファレンスマニュアル を参照してください。
MySQL 5.0 から 5.1 にアップグレードするには、次のチェックリストの項目をガイドとして使用します。
アップグレードの前に、権限テーブルを含む
mysql
データベースなどのデータベースのバックアップを作成します。Backup and Recovery
を参照してください。
項2.12.1.1. 「MySQL 5.0 から 5.1 へのアップグレード」 のすべての注釈をお読みください。これらの注釈によって、現在の MySQL インストールに適用されるアップグレードの問題を識別できます。アップグレードの前に、その節で説明されている一部の互換性の欠如に注意する必要があります。ほかの点はアップグレードのあとで扱うようにしてください。
MySQL Change History もお読みください。MySQL 5.1 の新機能、または MySQL 5.0 にあった機能とは異なる機能に関する情報が記載されています。
新しいバージョンの MySQL にアップグレードしたあとで、mysql_upgrade を実行します (mysql_upgrade を参照)。このプログラムはテーブルを確認し、必要に応じて修復を試みます。また、権限テーブルを更新して現在の構造を持つようにし、新しい機能を活用できるようにします。(MySQL のリリースの中には新たに権限や機能を加えるために権限テーブルの構成に変更を加えているものもあります。)
Windows 上で MySQL サーバーを稼働している場合には、項2.3.14. 「Windows を使用した MySQL をアップグレードする」 を参照してください。
レプリケーションを使用している場合、レプリケーション設定のアップグレードに関する情報、Upgrading a Replication Setupにあります。
元々複数の RPM パッケージをインストールして生成したインストールをアップグレードする場合は、一部だけでなくすべてのパッケージをアップグレードするのが最善です。たとえば、以前にサーバーおよびクライアントの RPM をインストールした場合は、サーバーの RPM だけをアップグレードすることはしないでください。
MySQL 5.1.9 の場合、mysqld-max サーバーはバイナリの配布に含まれています。個別の MySQL-Max 配布はありません。MySQL 5.1.12 では、バイナリ配布に mysqld-max サーバーはありません。バイナリ配布には、以前 mysqld-max に含まれていた機能を含むサーバーが含まれています。
ユーザー定義関数 (UDF)
の所定の名前で作成して MySQL
を同じ名前の内蔵機能を実装した新しいバージョンにアップグレードした場合、その
UDF
はアクセスできなくなります。これを修正するには、DROP
FUNCTION
を使用して UDF
を無効にし、次に
CREATE
FUNCTION
を使って相反することのない異なる名前で
UDF
を再作成します。同じとこが新しいバージョンの
MySQL
が既存の機能と同名の内蔵機能を実装した場合にも言えます。サーバーの異なる種類の機能に対するリファレンスの解釈を説明した規則は、項5.2.4. 「関数名の構文解析と解決」
を参照してください。
MySQL のフォーマットファイルおよびデータファイルは、同じリリースシリーズの MySQL のバージョン内にかぎり、アーキテクチャーが同じシステム上の異なるバージョン間で常に移動できます。
新しいバージョンの使用に懸念がある場合には、常に古い 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
インストールにインプレースアップグレード後のコンバートに長い時間がかかることがある大量のデータが含まれている場合は、必要な変換とその実行に関係する作業を評価するための「仮の」データベースインスタンスを作成すると役立つことがあります。mysql
データベースとデータのないその他のすべてのデータベースの完全なコピーを含む
MySQL
インスタンスのコピーを作成します。この仮のインスタンスでアップグレードの手順を実行し、必要になる操作を確認して、元のデータベースインスタンスで実際のデータ変換を実行するときに関係する作業をよりよく評価できるようにします。
新しいリリースの MySQL
をインストールする際はいつでも Perl
DBD::mysql
モジュールを再構築して再インストールするのがいいでしょう。同じことが、PHP
mysql
拡張や Python
MySQLdb
モジュールなどのほかの MySQL
インタフェースにも言えます。