MySQL5.6 正式リリース
本日、待ちに待ったMySQL5.6の正式版がリリースされたので、MySQL5.5だった自宅サーバーとさくらVPSをさっそくMySQL5.6にしてみました(参考:MySQL 5.6正式リリース!! #mysql56)。
さくらVPS(CentOS6.3)のMySQL5.6化
まず、さくらVPS(CentOS・メモリ1GB・SSDプラン)をMySQL5.6にしてみました。MySQLの公式サイトから、MySQL5.6.10の以下のRPMをダウンロードしました。このサーバーでは、ZabbixとphpMyAdminが動いています。
- MySQL-devel-5.6.10-1.el6.x86_64.rpm
- MySQL-client-5.6.10-1.el6.x86_64.rpm
- MySQL-test-5.6.10-1.el6.x86_64.rpm
- MySQL-embedded-5.6.10-1.el6.x86_64.rpm
- MySQL-zrm-2.2.0-3.el6.noarch.rpm
- MySQL-shared-compat-5.6.10-1.el6.x86_64.rpm
- MySQL-shared-5.6.10-1.el6.x86_6.rpm
そのままRPMをインストールすると、YUMレポジトリ(remi)からインストールしたMySQL5.5とコンフリクトを起こすので、いったんmysqldumpでデータのバックアップを取った後、yum removeでMySQL関連のパッケージを削除しました。悩ましかったのが、mysql-libs。依存関係でPostfixとかZabbixとかも削除されそうになったので、依存関係を無視してmysql-libsだけをアンインストールしました。
その後、ダウンロードしたMySQL5.6のRPMをrpm -ivhでインストール。特にコンフリクト無くインストールできました。mysqldumpからDBを復元して、MySQLを再起動。再起動に成功しました。Zabbix、phpMyAdminとも問題なく動いています。
自宅サーバー(openSUSE 12.2) のMySQL5.6化
次に自宅サーバーをMySQL5.5からMySQL5.6にアップデートすることにしました(メモリ32GB・SSD・HT8コア)。こちらはOSはopenSUSEで、WordPressとNginxとRedisとRedmineが動いています。openSUSEでもRPMが使えるので、下記のRPMをダウンロードしてきて、mysqldumpで既存のデータのバックアップを取った後、zypperでMySQL5.5をアンインストール。その後、MySQL5.6をRPMインストールして、再起動に成功。WordPressなどの正常稼働を確認しました。
- MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm
- MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm
- MySQL-shared-5.6.10-1.linux_glibc2.5.x86_64.rpm
- MySQL-devel-5.6.10-1.linux_glibc2.5.x86_64.rpm
ただ、ここで問題発生。Redmineを動かすために、RailsのUnicornサーバーを立てていたのですが、Unicornが起動しません。GEMのMySQL2が、MySQL5.5でコンパイルされているため、Unicornの起動に問題が生じたようです。色々試行錯誤してみたのですが、Unicorn関係のGEMを全部削除して、bundle installを再び行うことでMySQL5.6でコンパイルされたMySQL2のGEMが入りました。
DBのベンチマークや新機能はこれから試そうと思っていますが、とりあえずWordPressのブログの表示速度に影響がないか、Apache Benchでトップページの負荷計測しました(さくらVPSから自宅サーバーへ)。
ab -n 1000 -c 100 https://www.geek.sc/
Server Software: nginx/1.0.15
Server Hostname: www.geek.sc
Server Port: 80
Document Path: /
Document Length: 66433 bytes
Concurrency Level: 100
Time taken for tests: 5.809 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 66901554 bytes
HTML transferred: 66706390 bytes
Requests per second: 172.14 [#/sec] (mean)
Time per request: 580.934 [ms] (mean)
Time per request: 5.809 [ms] (mean, across all concurrent requests)
Transfer rate: 11246.30 [Kbytes/sec] received
とりあえずRequests per second: 172を出しているので、速度は問題無さそうです。
負荷状況に関しては、Muninを公開しているので、Muninから確認できます。突出してクエリが多いのは負荷試験を行った名残です。これから新機能を色々テストしてみます〜!
追記:
もう1回、再インストールする機会があったのですが、どうやらremiのMySQL5.5関連の既存パッケージを削除して、MySQL5.6をインストールしても、ちゃんとデータベースは残っているようです。念のためバックアップはやはり取ったほうがいいと思いますが、バックアップから流し込みなしでも、データベースの中身はそのままでアップグレードできるようです。