MySQL5.1からMySQL5.5へアップグレード

http://www-jp.mysql.com/why-mysql/white-papers/mysql-wp-whatsnew-mysql-55.php

MySQL5.5 の新機能 - パフォーマンスとスケーラビリティによると
Mこのホワイトペーパーでは、大幅に改善されたパフォーマンス、スケーラビリティ、
および、マルチプロセッシングハードウェア/ソフトウェア/ミドルウェアアーキテクチャ環境におけるユーザビリティなど・・・
Sysbenchベンチマークでは、Linux および Windows において、それぞれ370% および 540%のパフォーマンス向上が証明されました。

「大幅に改善されたパフォーマンス」とありますように是非試してみたいですよね。 現在FreeBSD上でMySQL5.1のバイナリー版を利用してるので5.5にバージョンアップしてみようと思います。

■現在のインストール先

/usr/local/mysql51

■移行先

/usr/local/mysql55

パッケージのダウンロード

ここでプラットフォームを選択してtarballをダウンロードします。 http://dev.mysql.com/downloads/mysql/

このmysql.comで配布されているバイナリパッケージはtarballを展開するだけで利用することができます。 configureやmake installする必要はありません。

# cd /usr/local
# tar zxvf /path/to/mysql-5.5.8-freebsd8.0-i386.tar.gz
# mv mysql-5.5.8-freebsd8.0-i386/ mysql55/
# chown -R mysql:mysql mysql55/
# cd mysql55
# cp support-files/my-small.cnf ./data/my.cnf

適宜my.cnfを書き換えます

databaseの初期化を行う

# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql55/data/

databaseの初期化が終わったらMySQL5.1で利用していた data/mysql および data/test 以外のデータをディレクトリごとコピーしてください

# cp-rf /usr/local/mysql51/data/OTHER_DATABASE /usr/local/mysql55/data/OTHER_DATABASE
# chown -R mysql:mysql /usr/local/mysql55/data/OTHER_DATABASE

起動scriptコピー

# cp /usr/local/mysql55/support-files/mysql.server /usr/local/etc/rc.d/mysqld
# chmod 0755 /usr/local/etc/rc.d/mysqld

mysqlサーバ起動

# /usr/local/etc/rc.d/mysql start

ps axなどでMySQLのプロセスがあるか確認して下さい data以下のパーミッションが適切に設定されていない場合MySQLは起動しません mysql55/bin へのpathを通す

新しく入れた/usr/local/mysql55/bin のコマンド群をshellが見つけられるように.profileなどにpathを追加します

/root/.profile 及び ~username/.profile

PATH=/usr/local/mysql55/bin:/sbin:/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin

パスワードやアカウントの設定

新しいMySQL5.5が起動しているのが確認できたら最初にrootのパスワード設定を行います アカウントデータは初期化されていますのでrootのパスワード設定されておりませんので速やかに設定して下さい

# mysql -uroot
mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'YOURPASSWORD' with grant option;
mysql> grant all privileges on *.* to 'root'@'%' identified by 'YOURPASSWORD' with grant option;
mysql> FLUSH PRIVILEGES;

rootアカウントの設定が終わったら他の通常利用するアカウントを追加してください

guestアカウント追加例

mysql> GRANT ALL PRIVILEGES ON *.*
mysql> TO 'guest@localhost'
mysql> IDENTIFIED BY 'GUESTPASSWORD'; 

最後に

移行が終わってベンチマークなど取ったわけではありませんが明らかにクエリを投げたときのレスポンスが良くなったような気がしました。 古い5.1は捨ててMySQL5.5に移行する価値はあると思います

created:

Back to top