MTOS(MT5) データベースの照合順序(さくらインターネット)

| コメント(0) | トラックバック(0)

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 に変更する。

この方法、以前に照合順序ではまった時に知っていれば良かった・・・。

トラックバック(0)

トラックバックURL:

コメントする

ARCHIVES