小野マトペの業務日誌(アニメ制作してない篇)

はてなダイアリーの閉鎖をうけ、旧ブログ http://d.hatena.ne.jp/ono_matope/ から移行しました。続きは→ http://matope.hatenablog.com/

CentOS 5でMySQL5.0からMySQL5.1にRPMアップデートした

ふぁぼったーでMySQLプラグインを使いたくなったので、MySQLを5.0から5.1にアップデートしました。以下メモ。
(作業のログをWebに残していかないとダメだなーと最近思ったので練習をかねて。こういうエントリーは別途はてなグループで起こした方がいい気がするな。)

環境

  1. CentOS 5
  2. yumで入れたMySQL 5.0.45

参考資料

5.0→5.1で注意を払うポイント

  1. トリガーが非互換(5.0.0→5.0.1間で)
  2. fulltextインデックス
  3. 予約語、システム変数の追加、変更、削除
  4. 4桁以下の年月表記の変更
  5. レプリケーション構成の場合はスレーブからアップデートする
  6. [NEW!]アンインストールで/etc/my.cnfが無くなった件。


あたりらしい。自分の場合はトリガは使ってたけど、既に5.0.1以上を使っていたので、ほとんど注意すべき部分はなかった。最後のmy.cnfを無くしたのが教訓。

手順

$sudo /etc/init.d/mysql stop;

  • 一応、コールドバックアップを取る

$sudo cp -rp /var/lib/mysql /tmp/mysql-buckup

  • /etc/my.cnfをバックアップ取る

どうやらMySQL5.0のアンインストール時に一緒に引っこ抜かれていくっぽい。待避しておきましょう。

$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をアンインストールする。

そのまま入れようとすると競合が云々言われる。

$sudo yum remove mysql

  • 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ならいいんじゃないでしょうか。以上。