2008年11月23日
MT4.22-ja やっとMySQL UTF8化
やっとMySQLのデータをujisからutf8に変更しました。
前にやって妥協して、MySQL鯖上ではutf-8で動いてて、データ自体はujis で使い、
MT本体は、utf8で構築されているので、たまにMySQLに接続すると文字化けが出ていた。
今回は、phpMyAdmin を入れてデータ自体の文字化けを直すことから始めました。
その前に、phpMyAdminが動くまでいろいろとありましたが(´д`)
Vine Linux 4.2 で入っているMySQLのバージョンが
MySQL-server-5.0.51a-1vl4
MySQL-devel-5.0.51a-1vl4
MySQL-shared-5.0.51a-1vl4
perl-DBD-MySQL-4.001-0vl1
MySQL-client-5.0.51a-1vl4
Apache は2.2.10, php はソースからインストールしました。rpmでもよかったんだけど。
phpのバージョンは5.2.6。
php のインストール時に、エラーを吐いていて、調べてみると libxslt が入っていなかったので
libxslt-develをインストール。
libxslt-1.1.17-4vl4
libxslt-devel-1.1.17-4vl4
phpMyAdmin を動くようにしたら、「mcrypt 拡張をロードできません。PHP の設定を確認してください。」と
「mysql 拡張をロードできません。PHP の設定を確認してください。」の2個が
でたため、libltdl をインストールと、configure のオプションで、
--with-mcrypt
--with-mysql
--with-mysqli=/usr/bin/mysql_config
を追加。
http://sourceforge.net/projects/mcrypt/
libltdl のインストール
$ cd /usr/local/src/libmcrypt-2.5.7/libltdl/
$ ./configure --enable-ltdl-install
$ make
$ sudo make install
php のインストール
./configure \
--with-apxs2=/usr/local/apache2.2/bin/apxs \
--prefix=/usr/local/php \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-mbregex \
--enable-trans-sid \
--enable-zend-multibyte \
--with-zlib-dir=/usr/local/zlib \
--with-iconv \
--with-mysql \
--with-mysqli=/usr/bin/mysql_config \
--with-mcrypt \
--with-config-file-path=/etc \
--without-sqlite \
--disable-debug
make
make test
make install で終了。
phpMyAdmin を適当なフォルダに入れて、apache でalias でアクセスできるように追加。
フォルダにはパスワード、IPで隔離。
やっと、phpMyAdmin 起動時にエラーが出なくなった。
ujis のデータを utf8 にするのに結構めんどくさかった。
phpMyAdmin でそのまま「エクスポート」するが、6500が文字化け。
どうも使っていないテンプレートのごみが悪さをしていました。backupをとっていたのですが
そのファイルに文字化けが発生していた。いらないので削除。
よくあることだけど、前に文字化けが発生してるとその後も文字化けが続くという、
連鎖があるので、データを直さないといけない。
Blog本文、trackback、テンプレートのデータに文字化けがあった。
ホームページ上で見ると文字化けは発生していなかったので、そちらを参照しながら
ひとつずつ修正。
「エクスポート」をして、text エディタで文字化けが無いことを確認してから、
MySQL を utf8で使うための設定。
/etc/my.cnf の修正
[mysqld]
#default-character-set=ujis
default-character-set=utf8
character_set_server=utf8
[mysql]
#default-character-set=ujis
default-character-set=utf8
MySQLにログインして、
mysql> show variables like 'character%';
で確認。
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
utf8で動いてることを確認して、DB をutf8で作ります。
mysql> create database mt character set utf8;
そのあと、phpMyAdmin で「インポート」。オプションで、utf8 にしておく。
MySQL 接続の照合順序 を「utf8_unicode_ci」を選択する。
作成したデータベースにアクセスして、問題ないか確認する。
あとは、MTの管理画面からログインして、実際にファイルが文字化けが起こってないか
確認して終了。
今回問題だったのは、ujis → utf8 にするときにかなりのゴミがMySQL上にあったこと。
コンソールでやるより、phpMyAdminで作業したほうが直っているか確認できるため、
時間的には短縮できた。
いつかは、utf8にしないといけないと思っていたのだが、後になればなるほど修正が
増える可能性があるので、早めにやったほうが良いと思った。
MT3.xからの問題と、MySQL4.1前と4.1以降の問題などが重なり、妥協してるところが
かなりあったのだが、今回は全部修正で utf8 に統一することができた。
これで当分問題は起こらないはずだが....
昔作った医療関連ページの内容が多くて、更新できない。phpMyAdmin でデータを保存すると
問題ない。MTが書き込みでタイムアウト。あまりに長い文章はMTには向いていないみたい。
投稿者 hideki : 22:03 | コメント (0) | トラックバック
2008年6月18日
MySQL が嫌になってきた
MTOS 4.2 をいじってるんですが、euc-jp で MySQL 上にデータを作ってるので、
utf-8 に切り替えようといろいろやってるがうまくいかない。
mysqldump してデータを utf-8 にエンコードして戻そうとするがうまくいかない。
別に euc-jp で動いているから良いんだけど、Blog 自体が utf-8 で作られているから、
データを utf-8 で保存したいんだけどね。
いちから作ったりいろいろしてるがなんか納得いかない。
MySQL 5.0.51 を使っているんですが、もう少しまともに動かないかなぁ。
投稿者 hideki : 23:12 | コメント (0) | トラックバック
MTOS4.2RC1はまだダメぽい。
いろいろいじっているけど、なんかしらでエラーでたりして使いづらい気がしてしょうがない。
apacheを再起動するとそのあと文字化けになって、MySQLを再起動すると治るんだが、
やっぱりMySQL上のデータをUTF8に変更とかしないとうまくないのかもしれないですね。
投稿者 hideki : 00:27 | コメント (0) | トラックバック
2008年6月16日
MT 4.2 RC1を入れてみた。
Movable Type 4.2 を発表しました
とのことだったので MT 4.2 RC1 を入れてみました。
確かに、MT 4.1より快適になったとは思うのですが、MySQLとの接続時に文字化けが
たまに発生してたのですが、MySQL5.0.27 をつかっているのですが、MySQL サーバー内では
utf8 クライアント側では ujis なので表示がおかしくなることがありました。
MT 4.1 のときより頻繁になったような気がします。
投稿者 hideki : 02:16 | コメント (0) | トラックバック
2008年3月 5日
MT4.1にして表示がおかしかったぽい。
MT3.xからバージョンアップしていくつか問題が出てたみたいです。
タグの変更だったりがあったぐらいなのかな。
アーカイブのプルダウンでその月に飛ばなかった。
まえになんのjavaだろうとかいって消したのが原因だった。わかりにくい構文の
書き方してるとだめぽいので、上下に説明を入れることにした。
投稿者 hideki : 01:12 | コメント (0) | トラックバック
2006年7月24日
MT3.2に戻す┐(´д`)┌
なんか動作も良くないので、MT3.2に戻した。やっぱりバックアップは取っておくべきだね。
HDDのデータ領域が遅いようだったので、2個入っているHDDのもう1つにMTのデータを移動。
速くなったようだ( ・ω・)∩
なんかHDDが遅い。買い替えかな。
[root@hoge mt]# hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 2336 MB in 2.00 seconds = 1168.00 MB/sec
Timing buffered disk reads: 74 MB in 3.02 seconds = 24.50 MB/sec
[root@hoge mt]# hdparm -tT /dev/hdc
/dev/hdc:
Timing cached reads: 2668 MB in 2.00 seconds = 1334.00 MB/sec
Timing buffered disk reads: 138 MB in 3.01 seconds = 45.85 MB/sec
投稿者 hideki : 00:31 | コメント (0) | トラックバック
2005年10月 4日
Movable Type 3.2jaにアップデート
MT 3.171 jaを使っていたのですが、MT 3.2 ja正式版が出たので、アップデートしてみました。
ダウンロードしてきて、解凍後、ftpソフトでアップロードして、
mt-upgrade.cgi 実行してファイルなどの更新を行えば完了。
結構簡単にできました。
テンプレートは順次入れ替えて、使いやすくしていくかなヽ(´ー`)ノ