[MySQL] MySQL5.0 から MySQL5.5へのアップグレード方法



MySQL5.0からMySQL5.5へアップグレードするには、一旦、MySQL5.1にアップグレードする必要があります。
CentOS 5.4のLinux環境でアップグレードをしてみました。

環境

CentOS 5.4 (i386)

基本的な流れ

  1. MySQL 5.1 をインストール
  2. mysql_upgrade コマンドでアップグレード
  3. MySQL 5.5 をインストール
  4. mysql_upgrade コマンドでアップグレード

RPMのダウンロード

あらかじめ、RPMをMySQLのサイトからダウンロードしておきます。
今回はCentOSなのでRedhat用のものをダウンロードしました。

  • MySQL 5.1
    1. MySQL-client-community-5.1.58-1.rhel5.i386.rpm
    2. MySQL-server-community-5.1.58-1.rhel5.i386.rpm
    3. MySQL-shared-compat-5.1.58-1.rhel5.i386.rpm
  • MySQL 5.5
    1. MySQL-client-5.5.15-1.rhel5.i386.rpm
    2. MySQL-server-5.5.15-1.rhel5.i386.rpm
    3. MySQL-shared-5.5.15-1.rhel5.i386.rpm
    4. MySQL-shared-compat-5.5.15-1.rhel5.i386.rpm

バックアップ

作業前に念のためデータのバックアップを取得しておきます。
今回は、MySQLを止めて、データファイルを丸ごとコピーしておきました。

$ sudo /etc/init.d/mysqld stop
$ sudo cp -R /var/lib/mysql /var/lib/mysql.backup

5.0 から 5.1へのアップグレード

CentOS付属のRPMとMySQLから配布されているRPMではコンフリクトしてしまうので、一旦CentOS付属のRPMを削除します。
MySQL依存しているRPMもあわせて、削除する必要があります。

# mysqlに依存するパッケージを一旦削除
$ sudo rpm -e mysql mysql-server php-mysql perl-DBD-MySQL

# MySQL5.1をインストール
$ sudo rpm -ivh MySQL-client-community-5.1.58-1.rhel5.i386.rpm MySQL-server-community-5.1.58-1.rhel5.i386.rpm MySQL-shared-compat-5.1.58-1.rhel5.i386.rpm

# my.cnf がRPMを削除されたときに、リネームされてしまっているので、戻しておく
$ sudo mv /etc/my.cnf.rpmsave /etc/my.cnf

MySQLを起動し、mysql_upgradeでアップグレードします。
エラーが出ますが問題ありません。エラーの出た箇所を自動で修復して、5.1へアップグレードしてくれます。

$ sudo /etc/init.d/mysql start

$ sudo mysql_upgrade
Looking for ‘mysql’ as: mysql
Looking for ‘mysqlcheck’ as: mysqlcheck
Running ‘mysqlcheck with default connection arguments
Running ‘mysqlcheck with default connection arguments
group_coupon.area_coupons OK
group_coupon.coupon_sites OK
group_coupon.coupons
error : Table upgrade required. Please do “REPAIR TABLE `coupons`” or dump/reload to fix it!
majide.wp_comments
<省略>
OK

一旦削除した、RPMを再度インストールして、5.1へのアップグレードは完了です。

$ yum install php-mysql perl-DBD-MySQL

MySQL5.1からMySQL5.5へのアップグレード

5.0から5.1と同じように、MySQLをインストール後、mysql_upgradeを実行します。

$ /etc/init.d/mysql stop

$ rpm -Uvh MySQL-client-5.5.15-1.rhel5.i386.rpm MySQL-server-5.5.15-1.rhel5.i386.rpm MySQL-shared-5.5.15-1.rhel5.i386.rpm MySQL-shared-compat-5.5.15-1.rhel5.i386.rpm

$ /etc/init.d/mysql start

$ mysql_upgrade

Comments are closed.