CentOS5.9のMySQLを5.6.14にアップデートする方法


投稿日:2013年10月17日
  • 3
  • 5



バージョンアップするごとに革新的に進化を続けるMySQL

mysqlinstall

その中でもMySQL5.6では「InnoDB FullText Search」がサポートされました。「色々試してみたい…」となるのが人情というものでしょうw

今回の環境はOSが64bitでCentOS5.9既にMySQLを運用していて、最新版であるMySQL5.6.14にアップデートする。という前提で話を進めます。

まったくの新規で設定をしたいということなら「以前の投稿」をご覧ください。


古いMySQLをアンインストール

早速アンインストールと行きたいところですが、既に古いバージョンで運営されている場合はバックアップを取ることをお勧めします。

データベースのバックアップ

特に注意する点はありませんが、権限やファイルの作成日をそのままコピーするためにオプションで「-arp」を追加してください。

# cd /var/lib ←ディレクトリの移動
# ls -lh mysql ←サイズの確認(サーバのリソースも合わせて確認しておくと安心です)
# cp -arp mysql mysql.backup ←バックアップ

設定ファイルのバックアップ

今回はrpmでインストールするので、バックアップファイルを自動で作成してくれますが、何があるかわかりません。苦労してチューニングした設定ファイルが無くなって泣かないためにも、しっかりバックアップしておきます。

# cd /etc ←ディレクトリの移動
# cp my.cnf my.cnf.org ←バックアップ

古いバージョンのMySQLをアンインストール

rpmでアップデートしようとしても「エラー: 依存性の欠如:」と出て止まってしまいます。そこでまずアンインストールを先にします。
アンインストールする前にバージョンを調べます。

# rpm -qa | grep -i ^mysql
mysql55-libs-5.5.28-2.ius.el5
mysql55-5.5.28-2.ius.el5
mysql55-server-5.5.28-2.ius.el5

以上3つのファイルを削除します。

# yum erase mysql55-libs-5.5.28-2.ius.el5 mysql55-5.5.28-2.ius.el5 mysql55-server-5.5.28-2.ius.el5

(省略)

================================================================================
 Package              Arch         Version                Repository       Size
================================================================================
Removing:
 mysql55              x86_64       5.5.28-2.ius.el5       installed        40 M
 mysql55-libs         x86_64       5.5.28-2.ius.el5       installed       4.1 M
 mysql55-server       x86_64       5.5.28-2.ius.el5       installed        42 M

Transaction Summary
================================================================================
Remove        3 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y ←YESかNOを聞かれるのでyを押してエンター
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : mysql55                                                  1/3
  Erasing        : mysql55-libs                                             2/3
警告: /etc/my.cnf は /etc/my.cnf.rpmsave として保存されました。
  Erasing        : mysql55-server                                           3/3
警告: /var/log/mysqld.log は /var/log/mysqld.log.rpmsave として保存されました。

Removed:
  mysql55.x86_64 0:5.5.28-2.ius.el5
  mysql55-libs.x86_64 0:5.5.28-2.ius.el5
  mysql55-server.x86_64 0:5.5.28-2.ius.el5

Complete!

Complete!」と出れば完了です。


最新版のMySQLをインストール

yumでインストールできるものはyumで、できなければrpm。ということでyumで確認してみます。(当環境では非公式リポジトリをデフォルトでは参照しないようにしているので「–enablerepo」オプションを付けて有効にしています。)

# yum list updates --enablerepo=remi,epel,ius | grep mysql

mysql55.x86_64                          5.5.33-1.ius.el5                    ius
mysql55-libs.x86_64                     5.5.33-1.ius.el5                    ius
mysql55-server.x86_64                   5.5.33-1.ius.el5                    ius
php54-mysql.x86_64                      5.4.19-1.ius.el5                    ius

どうやら利用しているリポジトリの情報だと5.5.33-1が最新版のようです。

それならMySQLの公式からダウンロードしようかなと考えていましたが、日本のミラーサーバである「jaist」で公開されているようなので、利用させていただきます。
それぞれCentOSの64bit、32ビット版だけでなく、solaris版、Windows版なども用意されているので、環境に合ったものを選択してください。

あとで「やっぱり必要だった」となると面倒なので、ひと通りインストールしてしまいます。

# rpm -Uvh \
http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-client-5.6.14-1.rhel5.x86_64.rpm \
http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-devel-5.6.14-1.rhel5.x86_64.rpm \
http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-server-5.6.14-1.rhel5.x86_64.rpm \
http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-shared-5.6.14-1.rhel5.x86_64.rpm \
http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.14-1.rhel5.x86_64.rpm \
http://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/MySQL-test-5.6.14-1.rhel5.x86_64.rpm

準備中...                ########################################### [100%]
   1:MySQL-client           ########################################### [ 17%]
   2:MySQL-devel            ########################################### [ 33%]
   3:MySQL-server           ########################################### [ 50%]
   4:MySQL-shared           ########################################### [ 67%]
   5:MySQL-shared-compat    ########################################### [ 83%]
   6:MySQL-test             ########################################### [100%]

/etc/my.cnf」の状態を確認して、MySQLの5.6からタイムスタンプの仕様が変わったため、1つだけ追加します。
mysqldセクションに追加してください。

explicit_defaults_for_timestamp=true

問題ないようなら、サーバを起動します。

# /etc/init.d/mysql start
Starting MySQL.. SUCCESS!

SUCCESS!」と出れば無事に起動しました。
あとはアップデート時のテーブルの更新をするだけです。

# mysql_upgrade -u root -p
MySQL用のパスワードを入力

以上でアップデート作業は完了です。

一応バージョンを確認しておきます。

mysql --version
mysql  Ver 14.14 Distrib 5.6.14, for Linux (x86_64) using  EditLine wrapper

無事5.6.14がインストールされました。

何日か運用してみて問題ないようなら、バックアップしたデータベースを削除します。



現在のページを共有する



現在のページに関連する記事


おすすめの記事


いただいたコメントなど

  1. d のコメント:

    とても助かりました。

    以下、タイポかと。
    「pm -qa | grep -i ^mysql」–> 「rpm -qa | grep -i ^mysql」

コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。