個別記事

MTとMySQL4.1の組み合わせで不具合

この記事が属するカテゴリー
Movable Type

このサイトの話ではないのですが、MovableType と MySQL4.1 の組み合わせで、2バイトが文字化けしてしまい、正直ここらへんの事は全然知識がないんで、マジで困っていました。でも、「iandeth.: Movable Type + MySQL 4.1 を組み合わせると日本語が文字化けする不具合/障害の解決方法」を見て何とか回避できました。ホント助かりました、感謝です。

実際に行った作業は、lib/MT/ObjectDriver/DBI 内にあるファイル mysql.pm の52と53行目の間に強調部分を一行挿入。

$driver->{dbh} = DBI->connect($dsn, $cfg->DBUser, $cfg->DBPassword,
    { RaiseError => 0, PrintError => 0 })
    or return $driver->error(MT->translate("Connection error: [_1]",
         $DBI::errstr));
$driver->{dbh}->do("SET NAMES utf8");
$driver;

問題のサイトは UTF-8 なんで、オラオラっと明示的に文字コードを UTF-8 と指定して完了です。

そもそもは、Berkeley DB から MySQL への移行作業にて、mt-db2sql.cgi を叩くと、カテゴリー付近の読み込みでエラーが出て進まなかったことに端を発しました。

Insertion test failed on SQL error Duplicate entry '1-' for key 2

ライセンスを購入してたんで、サポートの方に問い合わてみた所、下記の様な返答がありました。

ご返答いただきました内容から、お問合せのエラーは、MySQL 4.1 以降をお使いで、UTF-8 以外のエンコーディングを使用する際に起こる現象のようです。現在、詳細については確認中ですが、暫定の回避方法として、 Movable Type とデータベースのエンコードを UTF-8にてご利用いただくか、MySQL のバージョンを 3.23.xへと下げていただくことをご案内させていただいております。

MySQL4.1 からは、クライアントとサーバー両方で文字コードの設定を行わなければいけないと。phpMyAdmin で確認したら、「 MySQLの文字セット: UTF-8 Unicode (utf8)」。MT で使用しているデータベースを確認したら、「照会順序」欄が「ujis_japanese_ci」になってる。なんで、テーブルを全部削除して、phpMyAdmin で照会順序を「utf8_general_ci 」と設定し、再度移行してみたとろこ、無事に移行完了。ヒャッホウと浮かれたのも束の間、2バイトが全て文字化け。困っていたところ、上記サイトに出会い無事に解決したっつう事でした。

2005-03-17T19:46:58+09:00 | コメント (0) | トラックバック (2) |はてなブックマーク

関連性が高いエントリー 5 件

トラックバック

このエントリーのトラックバックURL:
http://WWW.lucky-bag.com/cgi/mt/mt-tb.cgi/184

このリストは、次のエントリーを参照しています: MTとMySQL4.1の組み合わせで不具合:

avoidnote さんからのトラックバック
MySQL 4.0x Movable Type のデータを MySQL 4.1 へ
MySQL 4.0x Movable Type のデータを MySQL 4.1 へインポートする際のメモ。 [続きを読む]
2005年08月30日 06:16
オオカミさんに囲まれた、か弱きヒツジのブログ さんからのトラックバック
DB移管
Internal Server Error 500が多発するため、DBの移管処理... [続きを読む]
2007年04月07日 22:36

コメント

"MTとMySQL4.1の組み合わせで不具合"へのコメントはまだありません。

コメントしてください

コメント内ではタグは一切使えません。コメント内にてタグを表記したい場合は、お手数ですが、文字実体参照を利用して < を &lt; 、> を &gt; とそれぞれ置き換えてください。




保存しますか?


(V) (P)