故あって 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