AWS の RDS を使って MovableType を立ち上げてみた

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

----

今までは、1つのLINUXマシンに MySQL サーバも入れてMovable Type を使っていたが、マシンが弱ってきたので amazon の AWS を使って再構築してみることにした。

DBサーバのサービスである RDS と、LINUXマシンのEC2をそれぞれ1インスタンスずつ起動して連動するというシンプルな構成。

既存DBのデータをRDSに移し、EC2 に MovableType をインストールして起動、もともとのデータはMTバージョン4のデータで、今回MTバージョン5をインストールしたので、データをアップグレード。

と、ここまでは順調だったのだが、MovableTypeの管理画面を起動してガッカリ。
データがすべて文字化けしている。

DBのエクスポートとインポートの文字コードが違っていたのかと思い、mysqldump や mysql コマンドのオプションで文字コードを指定してみるが、ぜんぜん直らない。。。
そしてハマりました。
MT5にしたのがまずかったのかと思い、MT4の環境を持ってきて起動しても化けている。

試行錯誤の結果、原因はDB自体の文字コードであることが判明。
RDSでDBを作成するときにデフォルトだと、latin1 みたいなコードになってしまうようだ。

では、そこのコードを変更するのはどうすれば良いか、

DBのインスタンスには DB Parameter Group というものが関連付けされていて、この DB Parameter Group の設定に文字コードの値が入っているようだ。

早速変更、と思ったら最初から割り当てられている
Parameter Group は変更不可なのだそうな。

しょうがないので、新しいParameter Group を作成し、インスタンスに関連付けし、それから文字コードの値を変更しよう。

で、この変更がまた大変、AWSのコンソールから変更できるのかと思いきや、ツールをダウンロードして、設定して、コマンドラインで変更をする、ようだ。。。

コマンドラインツールキットをダウンロードして、展開。

コマンドプロンプトを起動し、以下のような環境変数をセット(自分の環境にあった値を設定する。バッチファイルにしておくと後で使うときに便利)
SET AWS_RDS_HOME=C:\\tmp\RDSCli\RDSCli-1.6.001
SET Path=%Path%;%AWS_RDS_HOME%\bin
SET EC2_REGION=ap-northeast-1
SET AWS_CREDENTIAL_FILE=%AWS_RDS_HOME%\credential-file-path.txt

AWS_CREDENTIAL_FILE で指定したファイルにアカウント情報を記述(credential-file-path.templateというファイルがあるのでそれを参考に)

で、
rds-modify-db-parameter-group GROUPNAME -p "name=character_set_database, value=sjis, method=pending-reboot"
みたいなコマンド(GROUPNAMEは実際のパラメタグループ名を書く、文字コードはsjisとかutf8とか)を実行する。

他にもいくつか文字コードの設定をして、DBインスタンスを再起動

DB作成→データ移行→MovableType 表示

で、文字化けせずに表示されました!






 

トラックバック(0)

トラックバックURL: http://onno.jp/mt/cgi-bin/mt-tb.cgi/173

コメントする

このブログ記事について

このページは、管理者が2012年5月 2日 06:00に書いたブログ記事です。

ひとつ前のブログ記事は「WIndows XP で ICS のエミュレータが起動しない」です。

次のブログ記事は「EC2東京リージョンで固定IPをつけたらアメリカ割り当てのIPがついた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.13-ja