CentOS 5でMySQL5.0からMySQL5.1にRPMアップデートした
ふぁぼったーでMySQLプラグインを使いたくなったので、MySQLを5.0から5.1にアップデートしました。以下メモ。
(作業のログをWebに残していかないとダメだなーと最近思ったので練習をかねて。こういうエントリーは別途はてなグループで起こした方がいい気がするな。)
参考資料
- http://dev.mysql.com/doc/refman/5.1/ja/linux-rpm.html
- http://dev.mysql.com/doc/refman/5.1/ja/upgrade.html
- http://dev.mysql.com/doc/refman/5.1/ja/upgrading-from-5-0.html
- 作者: 荒木稔,能登信晴,Zev Blut,ミック,nanto_vi,武者晶紀,川崎修平,梅原宗士,田中正吾,黒田昌樹,米田健治,溝口妙子,小飼弾,岩下忠資,縣俊貴,大塚知洋,伊藤直也,田中洋一郎,山本陽平,下岡秀幸,高林哲,はまちや2,松信嘉範,角田直行,中山陽太郎,古谷楽人,瀧内元気,Yugui,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2008/06/23
- メディア: 大型本
- 購入: 5人 クリック: 84回
- この商品を含むブログ (34件) を見る
5.0→5.1で注意を払うポイント
- トリガーが非互換(5.0.0→5.0.1間で)
- fulltextインデックス
- 予約語、システム変数の追加、変更、削除
- 4桁以下の年月表記の変更
- レプリケーション構成の場合はスレーブからアップデートする
- [NEW!]アンインストールで/etc/my.cnfが無くなった件。
あたりらしい。自分の場合はトリガは使ってたけど、既に5.0.1以上を使っていたので、ほとんど注意すべき部分はなかった。最後のmy.cnfを無くしたのが教訓。
手順
- MySQL止める
$sudo /etc/init.d/mysql stop;
- 一応、コールドバックアップを取る
- /etc/my.cnfをバックアップ取る。
どうやらMySQL5.0のアンインストール時に一緒に引っこ抜かれていくっぽい。待避しておきましょう。
- 5.0.1以前の場合はトリガのダンプを取っておく。参照: http://dev.mysql.com/doc/refman/5.1/ja/upgrading-from-5-0.html
- その他変更点を確認する。システム変数に変更が加えられているが、俺はあんまり関係なかった。この辺はWEB+DB PRESS Vol.45が分かりやすかった。
- MySQLのサイトからrpmパッケージを落としてくる。自分はCentOSなのでRed Hat Enterprise Linux 5 RPM (x86)を選択。
$wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-server-community-5.1.30-0.rhel5.i386.rpm/from/http://mirror.csclub.uwaterloo.ca/mysql/
$wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-client-community-5.1.30-0.rhel5.i386.rpm/from/http://mirror.csclub.uwaterloo.ca/mysql/
$wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-shared-community-5.1.30-0.rhel5.i386.rpm/from/http://mirror.csclub.uwaterloo.ca/mysql/
$wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-shared-compat-5.1.30-0.rhel5.i386.rpm/from/http://mirror.csclub.uwaterloo.ca/mysql/
$wget http://dev.mysql.com/get/Downloads/MySQL-5.1/MySQL-devel-community-5.1.30-0.rhel5.i386.rpm/from/http://mirror.csclub.uwaterloo.ca/mysql/
shared-comunityとshared-compatは競合するのでどっちかだけ落とせばいいっぽい。とりあえずコンパチにした。
- MySQL 5.0をアンインストールする。
そのまま入れようとすると競合が云々言われる。
- MySQL 5.1をインストールする
$sudo rpm -i MySQL-server-community-5.1.30-0.rhel5.i386.rpm
$sudo rpm -i MySQL-client-community-5.1.30-0.rhel5.i386.rpm
$sudo rpm -i MySQL-shared-compat-5.1.30-0.rhel5.i386.rpm
$sudo rpm -i MySQL-devel-community-5.1.30-0.rhel5.i386.rpm
MySQL-serverをインストールした時点でMySQLがスタートする。注意。
- バックアップしたmy.cnfをリストアする。
- MySQLにログインし動作確認。
$ mysql -u root -p
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12379
Server version: 5.1.30-community-log MySQL Community Server (GPL)Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> exit;
バージョン
- mysql_updateでアップグレードの確認
テーブルの互換性を検証したり、権限システムテーブルを修正してくれたりするそうです。
$mysql_upgrade -u root -p
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck'...
(略)
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.general_log
Error : You can't use locks with log tables.
status : OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
(略)
全部OKならいいんじゃないでしょうか。以上。