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に移行する価値はあると思います