SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【MySQL】5.1から5.5へのアップグレード(rpmで)

問題

公式サイトから入手したrpmでインストールしたMySQL5.1を5.5にアップデートしたい。

MySQL-serverをアップデートしようとしたらメッセージが表示されてできない。

答え

メッセージの言うとおりにアップグレードする。

まず、5.1をインストールしたままで5.5をインストールしようとすると、次のように言われる。

# rpm -U MySQL-server-5.5.9-1.rhel5.i386.rpm

******************************************************************
A MySQL server package (MySQL-server-community-5.1.51-1.rhel5) is installed.

Upgrading directly from MySQL 5.1 to MySQL 5.5 may not
be safe in all cases.  A manual dump and restore using mysqldump is
recommended.  It is important to review the MySQL manual's Upgrading
section for version-specific incompatibilities.

A manual upgrade is required.

- Ensure that you have a complete, working backup of your data and my.cnf
  files
- Shut down the MySQL server cleanly
- Remove the existing MySQL packages.  Usually this command will
  list the packages you should remove:
  rpm -qa | grep -i '^mysql-'

  You may choose to use 'rpm --nodeps -ev ' to remove
  the package which contains the mysqlclient shared library.  The
  library will be reinstalled by the MySQL-shared-compat package.
- Install the new MySQL packages supplied by Oracle and/or its affiliates
- Ensure that the MySQL server is started
- Run the 'mysql_upgrade' program

This is a brief description of the upgrade process.  Important details
can be found in the MySQL manual, in the Upgrading section.
******************************************************************
エラー: %pre(MySQL-server-5.5.9-1.rhel5.i386) スクリプトの実行に失敗しました。終了ステータス 1
エラー:   install: スクリプト %pre の実行に失敗しました (2)。MySQL-server-5.5.9-1.rhel5 をスキップします。
MySQL5.1がインストールされている。5.1から5.5へのアップグレードは安全ではない。手動でダンプを取って、MySQLをインストールしなおして、リストアする手順をお勧めする。マニュアルも見てくれ。

とのこと。

以下、手順。

1、ダンプを作成(念のため)

mysqldump  -u root -p --all-database > all.dump

2、my.cnfをバックアップ(念のため)

cp /etc/my.cnf /etc/my.cnf.backup

3、MySQLサーバーを停止

/etc/init.d/mysql stop

4、MySQL5.1(古い方)をアンインストール

yum remove MySQL-server-community

5、MySQL5.5(新しいの)をインストール

rpm -i MySQL-server-5.5.9-1.rhel5.i386.rpm

6、mysql_upgrade を実行する

mysql_upgradeはテーブルをチェックして、必要なら修復してくれる。ユーザー、パスワードが設定してあったら、引数につける。

/etc/init.d/mysql start
mysql_upgrade -u root -p 

既存のデータをチェックしてもらい、異常はなかった。

my.cnfも特に上書きされるなどの変化もなく、5.5から使えなくなった項目を削除するなどの修正のみで済んだ。

最終的に、データのダンプと設定ファイルのパックアップは使わずにアップグレードできた。

5.1では使えて5.5で使えなくなっている設定項目があり、my.cnfをそのままにしておくといろいろなエラーで起動しない場合があるので、my.cnfを修正するか、my.cnfを削除して起動するとよい。

関連するメモ

コメント