2005年12月8日木曜日

MySQLのINSERT ... SELECT 構文(insertで副問い合わせ、サブクエリ)

試しにやってみたらできました。MySQL5.0です。

insert into FIRST_TABLE (fcol1,fcol2) select scol1,scol2 from SECOND_T where scol = 1;

http://dev.mysql.com/doc/refman/4.1/ja/insert-select.html

2005年12月7日水曜日

帰ってきた司馬遼太郎を読む(MSN)

ここしばらく、司馬遼太郎を読むがMSNで17位前後をうろうろしてたんですが、定位置の3位に帰ってきた。
しかも、ただ帰ってきただけじゃなく、「"shiba-ryo.com" から得た他の結果を表示します。」というリンクのおまけがついて帰ってきた。
帰ってきた司馬遼太郎を読む(MSN)
サイト内のインデックスされてるページをずらっと一覧表示してくれるものらしい。ページ数がある一定以上に達するとこのリンクがつく仕組みになってるのかな?

2005年12月5日月曜日

AWSが文字化け

サーバーを新調したら、MTのaws.plモジュールで文字化けするようになってしまった。ググってみたところ、どうやらPerl5.8で発生するエラーらしい。前のサーバーのPerlは古かったから大丈夫だったんだろう。
Perl5.8にはUTF-8フラグがどうのこうの、、、という問題があるみたい。なんだかめんどくさそうだったので、Perlを5.6にダウングレードして解決してしまった。
完全に枯れてると思ってたPerlも、ちょこちょこと細かい改善がされている様子。今後どんな方向に進んでいくんだろう。

2005年12月4日日曜日

自宅サーバー入れ替え完了

自宅サーバーのハード入れ替えが完了した。結構手間取るかな、と思っていたけど、これといって大きなトラブルもなく無事終了。
ちなみに Celeron 500GHz → Pen4 2.2GHz にスペックが上がったので、かなり処理が早くなりました。たとえば、MovableTypeがmod_perlなしでサクサク動くようになった、とか。そのうちメモリも増強してもうちょっとスペック上げようと思ってます。

2005年12月3日土曜日

phpでサイズの大きいファイルをアップする

phpで、ファイルをアップロードするスクリプトを書いた。
で、そのスクリプトで8.5MBのファイルをアップしようとすると途中で止まってしまってうまくいかない。
どうやら、php.iniの、
post_max_size
upload_max_filesize

が影響するようだ。
phpinfo();で見ると、デフォルトでは
post_max_size = 8M
upload_max_filesize = 2M
になってる
で、これをそれぞれ
post_max_size = 10M
upload_max_filesize = 10M
にしたら、うまくいきました。(かなり時間かかるけど)
php.ini変更したら、apacheの再起動も忘れずに。

2005年12月2日金曜日

MySQL5.0をインストール

ここからダウンロード
http://download.softagency.net/MySQL/downloads/mysql/5.0.html
解凍
# tar zxvf mysql-5.0.15.tar.gz
# cd mysql-5.0.15
configure , make , make install
# ./configure --prefix=/usr/local/mysql --with-charset=utf8
# make
# make install
※utf8しか使わないので、--with-charset=utf8にした
# ./script/mysql_install_db
# cp /usr/local/src/mysql-5.0.15/support-files/my-small.cnf /etc/my.cnf
# /usr/local/mysql/bin/mysqld_safe --user=root &
# /usr/local/mysql/bin/mysql --user=root
mysql> SHOW VARIABLES LIKE "char%";
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
 ↑--with-charsetの指定なし
mysql> SHOW VARIABLES LIKE "char%";
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
これまで使っていた4.0では文字コードが統一しておらず、SJIS、EUC、UTF-8の3種類のDBが混在している。これらをすべて5.0に移行するのは大変そうな予感がしたので、SJISとEUCのデータは全部削除。ほとんど使ってないデータだったのでちょうど良かったのかも。今後扱うデータはすべてUTF-8で統一しようと思う。
4.0のデータをdumpして5.0に入れようとするが、どうもうまくいかない。
/usr/local/mysql/bin/mysql -uroot < dump.sql
みたいな感じのことをすると、unknown databaseというエラーが出てしまう。なのでDBは手動で作り、個々にDBを指定してデータを移しかえた。

2005年12月1日木曜日

自宅サーバー二代目を購入

2002年頃から使っている、初代自宅サーバーがやばい。
IBMのPC300というのの新古品をネットショッピングで購入。自分の部屋に、床にそのままおいてある。

で、その初代が大きめの地震のときに、「バタンッ」と倒れてしまった。それ以降「ウィーーーーーンッ」という、かなりアヤシイ音を発するようになった。。

うるさいし、データ吹っ飛んだら怖いし、、、というわけで二代目購入を決意。

さっそくネットで適当なのを見つけた。

購入したのはIBMのNetVista M42 Slim。中古で25,000。黒くてかっこいい。
スペックはPen4の1.9Ghz。Mem256M。メモリはPC133なのでかなり古めだが、あまってるメモリがそのまま使えるので良しとする。

今回はじめて中古PCを買ったが、けっこう汚かった。
ケースの細かいキズはしょうがないが、内部に埃がいっぱい貯まっていた。
中古屋で掃除してくれているものだと思ってたのでちょっと残念だった。

たぶん、下取りして外側だけ雑巾でふいてそのまま出荷してるものと思われる。
そう考えると中古PC販売って相当儲かりそうな気がする。

とりあえず、VineLinux3.2インストール完了。
続いてApacheやMySQL、phpなどをインストール中。
あまり時間がないので少しずつ作業を進めてまずが、なるべく早めに二代目に切り替えようと思ってます。