50ページほどあるそこそこの規模の企業サイトのMT化をする事になりまして、久しぶりにMT5をいじくってみました。
MTのバージョンはMTOS5.04、さくらインターネットのクイックインストールでセットアップ。
データベースの照合順序を修正する
クイックインストールしたところ、やり方が悪かったのか、データベースの照合順序がujisになってしまっていたので、[phpMyAdmin]を起動して全て[utf8_general_ci]に修正してみました。
以前したように(MT4.2 + MySQL5.0 の文字コードを変更する)手作業でやったのでは大変なので、下記のサイトを参考にしてみました。
MySQLデータベースの照合順序を変更する方法 - 株式会社テクネコ
NetCommons用のドキュメントですが、目的は同じですので、全く同じやり方で目的を達成できます。
これで、「~」が正しく表示され、「?」にならないですみます。株式会社テクネコさん、深謝。
当たり前の話ではありますが、自己責任でお試し下さい。
やり方
1.DB全体
phpMyAdmin ログイン直後の画面で、DB全体の接続の照合順序を[utf8_general_ci]に変更
2.建てたDBを選択
MTが格納されているDB名を選択し[操作]タブの照合順序を[utf8_general_ci]に変更
3.全てのテーブル及びその各フィールド
1) 手順の概要
①全てのテーブルの照合順序を修正するSQLを自動生成するSQLを実行し、結果をコピー
②コピー内容(=SQL文)を貼り付けてSQLを実行
2) SQLを自動生成するSQL
株式会社テクネコさんの資料にあるSQL文をそのままコピーして利用させてもらいます。ちなみに、データベース名[hogehoge]、テーブル接頭語[mt]の場合、下記の通り。
(下記のSQL文のスペースなどの空白は削除せずそのまま利用します。)
SELECT "ALTER TABLE ", `TABLE_NAME` , " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;" FROM `TABLES` WHERE `TABLE_SCHEMA` = 'hogehoge' AND `TABLE_NAME` LIKE 'mt_%'
①[information_schema]データベースを選択
②[SQL]タブを選び、上記のSQLを貼り付けて実行
③結果をCSV形式でエクスポートするが、このときオプションを下記の通りとする。
[フィールド区切り記号] 空白(もともと設定されてる記号を削除する)
[フィールド囲み記号] 空白(もともと設定されてる記号を削除する)
[フィールドのエスケープ記号] 空白(もともと設定されてる記号を削除する)
[行の終端記号] AUTO
[NULLの代替文字列]NULL
[1行目にフィールド名を追加する] しない(チェック無し)
④出力されたCSVをエディタで開いてテキストをコピー 、mtのデータベースを選択し[SQL]タブを開き貼り付け実行。
これで全ての照合順序がutf8に変更されたはずなので確認する。
4.mt-configを修正する FTPソフトで、mtをインストールしたディレクトリにアクセス [mt-config.cgi]をエディタで開き、下記の設定を追加する。
PublishCharset UTF-8 SQLSetNames 1
上手く行かない場合は、SQLSetNames 0 に変更する。
この方法、以前に照合順序ではまった時に知っていれば良かった・・・。
コメントする