Movable Type 6 タグの一覧で日本語が統合されて表示されない。データベースの文字コードの変換へ。

  • 投稿日:
  • by
  • カテゴリ:

Movable Type 6タグの一覧で日本語が統合されて表示されない。データベースの文字コードの変換へ。

タグを使っていたら英語では、同一のものは統合されるのだが、日本語は別々に登録されてしまう。
これをMovable Type サポートチームに問い合わせたところ、「タグクラウド」ウィジェットに日本語のタグが重複して表示される現象は、MySQL データベースの文字コードの影響で発生している可能性があります。Movable Type 6 がサポートする文字コードは、「UTF-8」のみとなります。UTF-8(utf8_general_ci)」以外の文字コード照合順序となっていると文字コードを「UTF-8」に統一する必要があります。

との回答を得た。

調べてみたらサーバーのMysqlの照合順序がujis_japanese_ciとなっている。
大変だ。

Movable Type の「バックアップと復元」機能を利用して、新規作成した文字コード「UTF-8」のデータベースへデータを移行するしかない。

Movable Type 6 本格活用ガイドブックの文字コードの変換(UTF-8以外で運用していた場合)とMovable Typeのサーバー移転を参考にした。


1. システム全体のバックアップデータを取得
これでは心配なので
まず、データーサーバーのデータとファイル(再構築によって出力されたファイルなども)をすべてバックアップする。
復元用のファイルの
.xml と.manifest のファイルをutf-8に変換。
.xmlのファイルでは、ファイルの先頭にある、以下のような行を削除する。
<?xml version='1.0' encoding='文字コード'?>
そして復元ファイルが大きすぎる場合は、
mtの直下にあるimport ファイル入れる。

2. データベースを新規作成。UTFコードで作成を指定して。

と指示されたのだが、まずデータベースを新規に作れば、今までのデータベースを削除しなくてすむので、問題がおこったときに、もとに復帰できるのだが。サクラのレンタルサーバーではこれができるはずなのだが。一度試したのだがうまくいかない。

これでうまく行かないときは、やっぱり現在使用しているデータベースを消去して新しくutfコードで作成するしかない。今回はすべてバックアップを取ったのでこの方法でデータベースを消去して、再度作り直した。
新しいデータベースで照合順序がutf8_general_ciとなっていることを確認して次ぎのステップへ。


3. 環境設定ファイル「mt-config.cgi」を削除
4.「おまかせインストーラ」を実行
ブログが一つできるので、システムでブログを消去。
5. バックアップデータを復元

ここでブログのIDや、ウェッブページのIDが変わってしまうのでIDに依存する書き方をしているテンプレートがある場合は新しいIDに従って書き直さなくては行けない。

今回はIDに依存したテンプレート書き方をしていないので問題なく復元した。