XREAのサーバーでMySQL5を使っているとMovable Type4をインストールするとそれまで使っていたデータベースのデータが文字化けするようだ。


2008_01_18 記

[概要・詳細]

サーバーをXREAから上位のCORESERVERへお引越し完了しました。

そしてMovable Typeを3から4にアップグレード。
外見的には変わっていませんが。



・万一に備えてMTで記事を書きだす。

・手順としてはXREAのデータベースを保存する。MySQL.dump作成してローカルに落として保存。

・新サーバーに旧サーバーのMySQL.dumpをFTPでアップロード。MySQL.dumpを使ってデータベースを新サーバーで復元。

旧サーバーはMySQL4で新サーバーはMySQL5だったので心配したが問題はなかった。

・FTPで旧サーバーの記事やら何やらを新サーバーに移す。

・mt-config.cgiを書き換えて(或いはMT3でつかっていたものを流用して)MT4を新サーバーにインストール。
MTフォルダにアクセスするとアップグレードが始まる。


ここまでは順調だったのだが、ここで問題発生。
今までの記事の文章やらが「?????」と表示されて何がないやらわからない。
ローマ字はちゃんと表示されているので文字コードの問題だということは推定できた。


初めはMySQL4とMySQL5の間の問題かと思ったが、どうやらMT4とMySQL5の問題らしいということがわかった。

解決方法として以下のページを見つけた。
[]MySQL5以降のサーバーで文字化けする - XREAでMTを!
http://www.xrea-mt.com/xrea-mt/2006/03/trouble-3.html
[]2.テンプレートが文字化けし再構築できない: XREAでMTを!
http://www.xrea-mt.com/xrea-mt/trouble/2/

文章をお借りすると

1.データベースを作成する。   データベースを作成する際に、文字コード選択をUNICODEにして設置する。

2.UTF-8で設置した場合に起こる「テンプレートが文字化けし再構築できない」の対処を行う。  

3.以降普通に設置しますが、「mt-config.cgi」の
  57行目の
  # SQLSetNames 1
  を
  SQLSetNames 1
  に変更します。(文字化け対策)


さて、この対処法を施して問題を解決することができた。
この中で一番強力なのは
「SQLSetNames 1」だ。

あいにく、僕の「mt-config.cgi」には57行目というのが存在していないので、最後の行に SQLSetNames 1 と挿入する。

この意味は
『SQLSetNamesはデータベースへのアクセスする際のエンコードを明示的に設定するものです。値が"1"の場合、PublishCharsetの設定値をもとに、データベースとの接続時のエンコードを指定します。』

これがあるとないとでは雲泥の差だった。

ちなみに、PublishCharsetというのは文字コードの指定。
Movable Type 3.2 マニュアル - 環境設定ファイル (mt-config.cgi)によると、
『デフォルトでは、ユーザー・プロフィールで「表示する言語」に選んだ言語に対応する、HTTPヘッダーの文字エンコーディングを指します。この設定を上書きしたいときは、PublishCharsetを、使用したい文字エンコーディングに設定します。 ただし変更すると、Movable Typeシステムを使うすべてのユーザーとすべてのブログの設定が変更されるので注意してください。』
だそうです。



[]MySQL5以降のサーバーで文字化けする - XREAでMTを!
http://www.xrea-mt.com/xrea-mt/2006/03/trouble-3.html
[]2.テンプレートが文字化けし再構築できない: XREAでMTを!
http://www.xrea-mt.com/xrea-mt/trouble/2/
関連
[]
関連(外部)
[]

Track Back [1]

Track Back URL

MovableTypeをXREAからCORE SERVERへ

仕事の仮アップ用にMovableTypeもインストールしていたが先日のXREAからCORE SERVERへ移転でMySQLのデータが上手くバックアップでき... 続きを読む

コメントする

※ コメントは認証されるまで公開されません。ご了承くださいませ。

公開されません

(いくつかのHTMLタグ(a, strong, ul, ol, liなど)が使えます)

このページの上部へ