バージョンアップするごとに革新的に進化を続けるMySQL
その中でも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がインストールされました。
何日か運用してみて問題ないようなら、バックアップしたデータベースを削除します。
とても助かりました。
以下、タイポかと。
「pm -qa | grep -i ^mysql」–> 「rpm -qa | grep -i ^mysql」
コメント・ご指摘、ありがとうございます。
修正しました。