xreaからcoreserverへの引越し≒文字化けとの戦い

| コメント(0) | トラックバック(0)
5月の連休中、長年(8年弱)利用したxreaサーバーから引越した。といっても、引越し先は同系列のコアサーバー

(CORE-Aプラン)。
引っ越した理由はいくつかある。まず、現在の契約が5月末に切れること。そしてこのところ動的に生成しているページでちょくちょくエラー(MySQLの最大接続数超過)が出るようになっていたことが大きい。ディスクの容量に余裕はあったものの、先日から比較的容量を食う仕組みを動かしていることもあり、この時期での引越しとなった。
引越し先は、本来もう少し幅広く情報を集めるべきだったのだが、coreserverに。これもいくつか理由はあるのだが、
  • 運営会社が一緒で移行しやすそうだったこと(実際、DBのExport/Import、ファイルのサーバー間コピーツールはずいぶん助かりました)
  • value-domainを使い続けられる
  • MySQLの表領域とヴァーチャルホストを無制限に追加できる

移行しやすそうだったにも関わらず苦労したのは、さまざまなサイトで言及されている通り、MySQLの文字化けのため。大きく4つに分けると以下の通り。

●移行データの文字化け、およびそれに伴うインポート失敗
→単純に化けるだけでなく、インポート時にインデックスの文字数超過で失敗するケースが多発。結局インデックスをドロップ下上で再度エクスポート、新サーバーにコピーしたエクスポートファイルをコマンドラインから文字コードを指定してインポート。
●MovableTypeでの文字化け
故あって塩漬けにしているMT3.3でのみ発生。mt_configに「SQLSetNames 1」を加えてやったら解決
●自作プログラムでの文字化け
db_connectするつど「mysql_set_charset(‘utf8′);」を追加して回避。DB接続の記述をまとめておいて本当によかった。
●phpmyadmin(管理用Web画面)での文字化け
じつはこれがまだ解決していない。とりあえず全角文字列を扱うクェリーを投げるときにはおまじないとして「set names utf8」を投入しているが、もう少しスマートなやり方があるに違いない。
素人らしい、テキトーな解決/回避である。まあいいか、動いてるし。

参考にさせていただいたページ(助かりました。ありがとうございました。):

アーカイブ

Link