[MT] MT4における関連タグのエラーを解消する方法 - immovabletype


[MT] MT4における関連タグのエラーを解消する方法

HashiMさんのエントリーより。

MySQLを4から5へ ←バックアップの取り方
MySQLを5から5(へ? ←照合順序の直し方

本ブログにてタグクラウドを導入しようとしたところ、同じワードのタグがそれぞれ別々のタグと認識され、リンクを押してもエラーが発生するという事態に陥った。管理画面の一覧>タグからタグの一覧を見てみると、同じ名前のタグが大量に表示されている。なんじゃこりゃ??

■原因
いろいろ調べていると、どうやらDBの文字コードに原因があるらしいことがわかった。さくらのMySQLの文字コードがデフォルトでEUC-JPになっており、MTでUTF-8を使用しているとエラーが起こるのだ。ちなみに、「~」が「?」に文字化けするのも同じ理由らしい。

■解決方法
MySQLの全てのテーブルの照合順序をutf8_general_ciに変える。

■やり方
(さくらをベースに書いてます/上記HashiMさんのエントリーも参照)

1.DBの管理ツール「phpMyAdmin」へアクセスする
⇒さくらのサーバコントロールパネルにログイン
⇒左のメニューからアプリケーションの設定>データベースの設定
⇒管理ツールのphpMyAdminのバナーをクリックし、ログイン
⇒左メニューのアカウント名をクリック
⇒右画面上部の「構造」タブをクリックすると、「照合順序」の欄が「EUC-JP」になっている

2.DBのバックアップをとり、DBを削除&新規DBの作成
⇒phpMyAdminログイン直後の画面に戻り、「エクスポート」タブをクリック
⇒「構造」欄の「DROP TABLEを追加」と「IF NOT EXISTSを追加」にチェックを入れる。「ファイルに保存する」にチェックを入れ,圧縮は「なし」にする
⇒下部の「実行する」をクリック。「xxx.sql」というバックアップファイルがダウンロードできます(念のため、MTの管理画面からMTのバックアップもとっておきましょう)
⇒さくらのコンパネにアクセスし、データベースの設定画面にある「データベースを削除」ボタンを押す。
⇒その後、同じ画面から新規DBを作成できます。

3.sqlファイルを書き換え、インポート
⇒秀丸やエクセルなど置換機能が使えるエディタで先ほどダウンロードしたsqlファイルを開き、「DEFAULT CHARSET=ujis」となっている箇所をすべて「DEFAULT CHARSET=utf8」に変換して上書き保存する。
⇒phpMyAdminへアクセスすると、左メニューのデータがすべて消えています。「インポート」タブを開き、変換したsqlファイルをアップロードすると再びデータが読み込まれます。(私の場合は42個ファイルが作られました)
⇒これでDBの書き換えは終わりました。「照合順序」を確認するとutf8_general_ciになっているはずです。

4.MTへのアクセス設定を行う
⇒DBを新規作成したので、DB名が変ってしまっています。そこで、mt-config.cgi内の「DBHost データベースサーバ名」となっている部分を、新しいデータベースサーバ名に変更して保存し、FTPソフトで上書きアップロードします。
⇒再びMTにアクセスできるようになります。

これで作業は完了です。

備考:
修正後ログインしてみると、「~」が文字化けが直っていた。タグについては、既存ブログのものは残念ながら直りませんでしたが、新規にブログを作成しタグクラウドを入れてみたところ、正常に機能しました。 既存ブログで修正した場合は、下記を参考にするとよいかもしれません。

MT4で日本語を用いたタグクラウドがおかしい・~が出ない問題点

コメントの投稿