avoidnote

MySQL 4.0x Movable Type のデータを MySQL 4.1 へ

Published at 2005-08-30 (Tue) 06:14 in Movable Type, MySQL

Movable Type のデータベースに MySQL を利用している場合、データベースのバックアップは phpMyAdmin を使って簡単にできます。

ただ、MySQL 4.0 から 4.1 へとデータを移行する場合、ちょっと注意が必要。MySQL 4.1 ではパスワード認証プロトコル、文字コードの自動変換など大幅に改良されているようでそのままでは文字化け、接続できないなどのの不具合が発生します。MySQL 4.1 での変更点は日本MySQLユーザ会の FAQ にまとめられています。この Blog で使用している MySQL 4.0 のデータをローカル環境(Mac OS X 10.4.2) に MySQL 4.1.14 をインストール、インポートしてみました。

MySQL 4.1 のインストール

まずは、ローカル環境に MySQL 4.1 をインストール。インストールは MySQL AB :: MySQL 4.1 Downloads から最新版の Installer package (Mac OS X v10.4) をインストール。 パッケージからインストールの場合は デフォルト文字セットが latin1 になっているので MySQL 4.1 日本語環境設定方法 (キャラクタセット設定方法) : iandeth.を参考に /etc/my.cnf を以下のように設定。ここでは Movable Type の PublishCharset に設定している utf-8 に変更。


[mysqld]
default-character-set=utf8
# old-passwords

[client]
default-character-set=utf8


[mysql]
default-character-set=utf8

[mysqldump] 
default-character-set=utf8

Movable Type の設定

このままだと日本語が全部 ? に変換されてしまうので Movable Type の設定ファイル mt.cfg の適当なところにに以下の 1 行を追加します。


SQLSetNames 1

これで PublishCharset で指定したキャラクタセットデータベースへの接続をで行うようになります。詳しいことは設定ガイドの SQLSetNamesを参照。

Movable Type 3.17 より古いバージョンで MySQL 4.1 を使う場合は、Lucky bag::blog さんの MTとMySQL4.1の組み合わせで不具合 というエントリで lib/MT/ObjectDriver/DBI/mysql.pm を直接修正する方法が書かれています。

PHPからの接続

このままでは Mac OS X に標準インストールされている PHP からでは接続できないのでphpMyAdmin が使えません。先にインストールした MySQL 4.1.14 の libmysqlclient にリンクし直して、 PHP をコンパイルする必要があります。PHP をコンパイルし直したくない場合は上記の my.cnf の設定で old-passwords の行のコメントを外すことで接続はできるようです。PHP をコンパイルし直す場合は JAM LOG さんの PHP4.3.xをソースからビルドが参考になります。

Copyright © 2005 atz. All rights reserved.
Creative Commons License Movable Type Valid XHTML 1.0 Strict W3C CSS