【MovableType, MySQL】MySQL 5.1 → 5.5 へのアップグレード


故あって Movable Type で使っている MySQL のバージョンを 5.1 → 5.5 にアップグレードしてみた。

MySQL 5.5 のダウンロード

MySQL :: Download MySQL Community Server
http://dev.mysql.com/downloads/mysql/5.5.html

上記サイトより該当するプラットフォームのものをダウンロードする。今回はミラーサイトから直接ダウンロードした。

$ wget ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.5/mysql-5.5.3-m3-osx10.6-x86_64.dmg

データベースのバックアップ

念のためにバックアップしておこう。このサイトを参考にした。

MySQLデータのバックアップ方法 – SourceForge.JP Magazine : オープンソースの話題満載
http://sourceforge.jp/magazine/07/05/31/0155233

$ /usr/local/mysql/bin/mysqldump -uroot -p mt | gzip > /Users/delphinus/mt_backup_2010071401.gz
Enter password:

MySQL のシャットダウン

少なくとも Mac OS X 版のインストーラは自動でサーバを再起動してくれない。インストールする前にちゃんと終了させておこう。

Start and Stop MySql in Mac Os X 10.5 Leopard
http://www.jonmaddox.com/2007/10/27/start-and-stop-mysql-in-mac-os-x-105-leopard/

$ sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop

実はこれを忘れていたためにひどい目にあった。その話はまた後で……。

MySQL 5.5 のインストール

Mac OS X の場合はダウンロードしたイメージをマウントし、mysql-5.5.3-m3-osx10.6-x86_64.pkg ファイルをダブルクリックするだけである。

後は今回遭遇した様々なトラブルについて。

その他の注意点

シャットダウンさせずにアップグレードすると……

5.1 → 5.5 へのアップグレードによりディレクトリ構成は次のようになった。

$ ll /usr/local
(中略)
lrwxr-xr-x   1 root  wheel    29  7 14 10:04 mysql@ -> mysql-5.5.3-m3-osx10.6-x86_64
drwxr-xr-x   3 root  wheel   102  7 14 10:04 mysql-5.1.42-osx10.6-x86_64/
drwxr-xr-x  18 root  wheel   612  7 14 10:29 mysql-5.5.3-m3-osx10.6-x86_64/

この状態では mysql-5.1.42 の実行ファイルが削除済みのまま起動中と言う訳のわからない事態になっている。上に挙げたシャットダウンコマンドも使えないので手動で kill し、また、残ったファイル群も新しいディレクトリに移してしまおう。

$ cd /usr/local
# MySQLを終了
$ sudo kill `cat mysql-5.1.42-osx10.6-x86_64/data/remora.cx.pid`
# いらないファイルを削除
$ sudo rm mysql-5.1.42-osx10.6-x86_64/data/remora.cx.pid
$ sudo rm mysql-5.1.42-osx10.6-x86_64/data/remora.local.pid
# 新しいディレクトリにファイルをコピー
$ sudo cp -a mysql-5.1.42-osx10.6-x86_64/data/* mysql/data

起動オプションの変更

だが、そのまま起動しようとしてもうまくいかなかった。どうやら設定ファイルがおかしいらしい。

$ sudo less /usr/local/mysql/data/remora.cx.err
(中略)
100714 10:30:34 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default-character-set=utf8'

設定ファイル my.cnf のうち、default-character-set を含む行を削除するとうまくいった。何か仕様が変わったんだろうか?

$ sudo vim /etc/my.cnf
$ sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

Apache と memcached の再起動

これ大事。でないと Movable Type 上で激しく文字化けします。

$ sudo apachectl restart
$ sudo launchctl stop org.macports.memcached

さて、次が本題。そもそも MySQL 5.5 にアップグレードしたのは記事内に BMP 外の文字を書くためであった。それはまた別記事にて。アップデートしました。

【MovableType, MySQL】記事中に BMP 外の文字を使う | blog.delphinus.dev
https://blog.delphinus.dev/2010/07/use-non-bmp-characters-in-movabletype.html

コメントを残す