MySQL5.0からMySQL5.5へアップグレードするには、一旦、MySQL5.1にアップグレードする必要があります。
CentOS 5.4のLinux環境でアップグレードをしてみました。
環境
CentOS 5.4 (i386)
基本的な流れ
- MySQL 5.1 をインストール
- mysql_upgrade コマンドでアップグレード
- MySQL 5.5 をインストール
- mysql_upgrade コマンドでアップグレード
RPMのダウンロード
あらかじめ、RPMをMySQLのサイトからダウンロードしておきます。
今回はCentOSなのでRedhat用のものをダウンロードしました。
- MySQL 5.1
- 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
- MySQL 5.5
- 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
バックアップ
作業前に念のためデータのバックアップを取得しておきます。
今回は、MySQLを止めて、データファイルを丸ごとコピーしておきました。
$ sudo cp -R /var/lib/mysql /var/lib/mysql.backup
5.0 から 5.1へのアップグレード
CentOS付属のRPMとMySQLから配布されているRPMではコンフリクトしてしまうので、一旦CentOS付属のRPMを削除します。
MySQL依存しているRPMもあわせて、削除する必要があります。
$ 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 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へのアップグレードは完了です。
MySQL5.1からMySQL5.5へのアップグレード
5.0から5.1と同じように、MySQLをインストール後、mysql_upgradeを実行します。
$ 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