Q4M 人柱

| コメント(0) | トラックバック(0)
id:kazuhoさんが作っているQ4M を早速試してみました。入手はsvnから。結論から言うとちょっと動かなかったのだけれども、もうすでにコミットされてない部分もありそうだし、とりあえず報告とかもかねて。

まずmysql-5.1.xサポートなので、mysql-5.1.22-rcをDL、./configure --prefix=/usr/local/mysql-5.1という設定だけでインストール。

次にq4mディレクトリで
glibtoolize --copy (glibtoolizeなのはとりあえずmacだから) aclocal -I . autoheader automake --add-missing -coy autoconf
してから、configure。
configure --with-mysql=/path/to/mysql-5.1.22-rc --lib-dir=/usr/local/mysql-5.1/lib make make install
mysqlはmysqld_safeで立ち上げて、横で
mysqladmin -u root create mq mysql -u root mq
テーブルスキーマはとりあえずなんでもよさそうだったのでこんな感じで
CREATE TABLE mq ( id TEXT NOT NULL, data BLOB, inserted_on TIMESTAMP NOT NULL ) ENGINE=queue;
この状態で以下のようなperlスクリプトを実行:
use strict; use Time::HiRes qw(time); use Digest::MD5 qw(md5_hex); use DBI; my $dbh = DBI->connect('dbi:mysql:dbname=mq', 'root', undef, {AutoCommit => 1, RaiseError => 1}); my $sth = $dbh->prepare("INSERT INTO mq (id, data) VALUES (?, ?)"); foreach my $i (1..20) { $sth->execute(md5_hex(time(), {}, $$, rand()), $i); } $dbh->disconnect;
まず一発目。perl insert.plをすると"ERROR 2013 (HY000): Lost connection to MySQL server during query"。おっと、裏のプロセスが落ちた・・・データを見ると一応インサートそれてるっぽいので、取り急ぎ削除してやりなおそうと思うと
mysql> delete from mq;ERROR 2013 (HY000): Lost connection to MySQL server during query mysql> delete from mq; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 2 Current database: mq ERROR 2013 (HY000): Lost connection to MySQL server during query mysql>
ぐへ。削除できない・・・。

ここが今の状態。結構良い時間になったので今日はここまでかな。

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ