coLinux日記

coLinuxはフリーソフトを種として、よろずのシステムとぞなれりける。

apache 2.2.3 設定2

2006-12-27 23:49:49 | Apache httpd
前回 apache httpd が一応うまく動いたので、もう少し extra ディレクトリ下の設定ファイルをいじってみます。

まず、起動時に立ち上がる httpd の数が多いので、数を減らします。
MPM (マルチプロセッシングモジュール) 関連ですね。
# /usr/local/httpd/bin/apachectl -l | grep prefork
  prefork.c
#
# vi conf/extra/httpd-mpm.conf
(以下を修正。 mpm_prefork_module の方を修正しました。)
    StartServers          1
    MinSpareServers       1
    MaxSpareServers       3
    MaxClients           20

#

ついでに、言語も日本語優先にしておきます。
# vi conf/extra/httpd-languages.conf
 (以下を修正。)
DefaultLanguage ja
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ......

#


これで一応完成です。起動時に httpd が立ち上がるようにします。
# cd /etc/init.d
# ln -s /usr/local/httpd/bin/apachectl httpd
# chkconfig --add httpd
service httpd does not support chkconfig
# 

chkconfig に拒絶されました。ほかのファイル (特に MySQL のもの)と比較すると、
どうも、
   # chkconfig: nnnn nn nn
   # description: xxxxxxxxxxxxxxxxxxxx

のコメントを入れれば、OK みたいです。chkconfig: の3つの数字は、デフォルトのrunlevel の番号リストと、起動順番、終了順番ですね。オリジナルは直さないでコピーで試します。
# cd /etc/init.d
# rm httpd
# cp /usr/local/httpd/bin/apachectl httpd
# vi httpd
 (以下のコメントを挿入)
   # Comments to support chkconfig on RedHat Linux
   # chkconfig: 3 65 35
   # description: Apache httpd Web server
 
# chkconfig --add httpd
# chkconfig --list httpd
httpd           0:off   1:off   2:off   3:on    4:off   5:off   6:off
#

コメントの 3 つの数字は、MySQL のものを参考に適当につけました。うまく chkconfig に認識してもらい設定できました。
バージョンアップ時にもコピーしてコメントを加えてないといけないです。

これで、ブートしたときに、httpd が起動できるようになりました。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

apache 2.2.3 設定1

2006-12-26 21:42:08 | Apache httpd
前回コンパイルした、apache httpd を動かしてみます。

httpd を動かす前に設定ファイルの修正があります。apache は、最初複数の設定ファイルだったのが、一度 conf/httpd.conf にまとめられて、その後また Include を使ってファイルを読み込むことができるようになり、 conf/extra ディレクトリの下に各種設定ファイルがおかれるようになったと思います。

ここからは、Apache HTTP サーバ バージョン2.2 ドキュメント(http://httpd.apache.org/docs/2.2/) を参考に設定していきます。既にドキュメントが日本語になっていて助かります。
# cd /usr/local/httpd/conf
# vi httpd.conf
(次の行を修正)

ServerRoot "/usr/local/httpd"
User www
Group www
ServerAdmin espiya@example.co.jp
ServerName www.example.co.jp:80
DocumentRoot "/home/data/www"

<Directory /> 
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "/home/data/www">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from 192.168.1
</Directory>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/home/data/cgi-bin/"
</IfModule>

<Directory "/home/data/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from 192.168.1
</Directory>

Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-languages.conf

#
# echo 'www:x:130:' >> /etc/group
# useradd -u 130 -g 130 -d /home/www -s /sbin/nologin www
# 
# mkdir /home/data/www
# mkdir /home/data/cgi-bin
#

とりあえずは、extra 以下の設定は行わず、起動してみます。
Apache httpd の Order ディレクティブは、/etc/hosts.allow , /etc/hosts.deny とは少し異なります。

Order Deny,Allow : Deny に合わないか、Allow に合うものは許可(Allow がなければ許可)

Order Allow,Deny : Allow に合わないか、Deny に合うものは拒否(Deny がなければ拒否)

上の例でいくと、Directory / の場合は、すべて拒否、Directory /home/data/www 、/home/data/cgi-bin の場合は、
は、Allow条件に合う以外はすべて拒否となります。
# cd /usr/local/httpd
# bin/apachectl start
#

/etc/hosts ファイルを修正すると共に、確認する PC のホストファイルを修正します。
/etc/hosts と C:\WINDOWS\system32\drivers\etc\hosts
に、www.example.co.jp の名前を、colinux マシンのIPアドレスに別名として設定します。
192.168.1.100  fedora fedora.example.co.jp www.example.co.jp

これで、ブラウザからみると、403 Forbidden が表示されました。ためしに /home/data/www に index.html を作成してみます。
テスト用に、localhost からは拒絶にしておきます。
console ウィンドウから見てみると、localhost になるので拒絶されるはずです。

$ lynx http://www.example.co.jp/
Looking up www.example.co.jp
Making HTTP connection to www.example.co.jp
Alert!: Unable to connect to remote host.

lynx: Can't access startfile http://www.example.co.jp/
$

正しく拒絶されています。

UserDir が指定されていないので、ユーザディレクトリ置換機能は動作しません。指定するときは、conf/extra/httpd-userdir.conf に指定してインクルードすればOKです。
また、別の PC や coLinux を動かしている PC の Windows 側から見ると、正しく表示されました。うまく動いています。
coLinux を動かしている PC で動いている Windows は、実質的に別マシンとして考えられるのでテストはすごく便利ですね。これもcoLinux の良いところだと思います。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

apache 2.2.3 コンパイル

2006-12-23 23:01:46 | Apache httpd
MySQL の悪夢を忘れて、apache httpd(http://www.apache.org/)にいきます。
$ gpg --import 10fde075.txt
gpg: 鍵10FDE075: 重複したユーザーIDの検出 - 併合
gpg: 鍵10FDE075: 公開鍵 "wrowe@covalent.net" を読み込みました
.........................
$ gpg --verify httpd-2.2.3.tar.gz.asc
gpg: 2006年07月28日 02時35分49秒 JSTにRSA鍵ID 10FDE075で施された署名
gpg:  "wrowe@covalent.net" からの正しい署名
.........................
$ 
$ md5sum httpd-2.2.3.tar.gz
f72ffb176e2dc7b322be16508c09f63c  httpd-2.2.3.tar.gz
$ cat httpd-2.2.3.tar.gz.md5
f72ffb176e2dc7b322be16508c09f63c  httpd-2.2.3.tar.gz
$

そういえば、gnupg はメッセージが日本語になっています。gettext ですね。ということは、mo ファイルがあるはずです。
/usr/share/locale/ja/LC_MESSAGES/gnupg.mo

ちゃんとありますね。当たり前ですが。

ファイルチェックも終わったので展開します。
$ tar xvzf httpd-2.2.3.tar.gz
..............................
$ cd httpd-2.2.3
$

早速コンパイルします。最適化オプションは標準の -O2 で -g 付きです。コンパイル中に Media Player とかテレビ (Buffalo PCast を使っています。)とか見れたりするのが、colinux らしいです。apache の場合も結構頻繁にバージョンアップがありますから、インストールディレクトリ名もバージョン名をつけた方が分かりやすいです。
$ cd httpd-2.2.3
$ ./configure --prefix=/usr/local/httpd223  \
              --enable-usertrack  --enable-auth-digest \
              --enable-ssl  --enable-rewrite  --enable-so
.........................
$ make
.........................
$

# make install
.........................
# cd /usr/local
# 
# ln -s httpd223 httpd
#

無事にインストールも終わりました。MySQLよりははるかに簡単です。
設定は次回にします。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ファイルシステムサイズ拡張

2006-12-22 23:30:14 | Weblog
ファイルシステムサイズ拡張コマンド resize2fs というのがあるようです。
resize2fs device size

で拡張できるらしいので試してみました。うまくいけば便利です。
C:\> fsutil file createnew C:\colinux\t001.ext3 1048576

でファイルを作って、Fedora5.bat に cobd3=t001.ext3 を追加して、ブートします。小さすぎて、journal は拒否されて、ext2 になってしまいました。
# mkfs -t ext3 /dec/cobd3
...........................
Filesystem too small for a journal
...........................
# mount /dev/cobd3 /mnt
# df -T /mnt
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/cobd3    ext2        1003        17       935   2% /mnt
#

さて、ここに適当にファイルやディレクトリなどを作ります。
そして、いったんアンマウントします。
# sync
# umount /mnt
# fsck /dev/cobd3
fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
/dev/cobd3: clean, 15/128 files, 528/1024 blocks
# 

ここで、resize2fs device size を使ってみます。
# resize2fs /dev/cobd3 10M
resize2fs 1.38 (30-Jun-2005)
The containing partition (or device) is only 1024 (1k) blocks.
You requested a new size of 10240 blocks.

#

やはり、Windows のファイルのサイズを変えてまで行うことはしないようです。普通はできないと思うのですが、coLinux ならできるかもと思ったので残念です。

となると、ファイルシステムの拡張は、あらかじめ更に大きなサイズのファイルをWindowsで用意して、dump と restore コマンドでコピーすればよさそうです。機会があれば試してみます。それにしても dump,restore が最初から入っているのはうれしいです。FedoraCore5 Root FS image を作った方は、そういうことをしたい人も想定しているようです。

例えば、こんな感じでしょうか。
dump -0u -f - / | restore -rf -

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

設定11(仮想ターミナルとメモリ)

2006-12-21 21:27:55 | インストールと設定
メモリ利用状況を調べてみました。mysqld が動いている状態での測定です。
$ free -k
             total       used       free     shared    buffers     cached
Mem:        126368      44960      81408          0       1884      23536
-/+ buffers/cache:      19540     106828
Swap:       131064          0     131064
$
$ ps -e
  PID TTY          TIME CMD
    1 ?        00:00:00 init
    2 ?        00:00:00 ksoftirqd/0
    3 ?        00:00:00 events/0
    4 ?        00:00:00 khelper
    5 ?        00:00:00 kthread
    6 ?        00:00:00 kblockd/0
    7 ?        00:00:00 pdflush
    8 ?        00:00:00 pdflush
   10 ?        00:00:00 aio/0
    9 ?        00:00:00 kswapd0
   11 ?        00:00:00 kseriod
   56 ?        00:00:00 kjournald
  107 ?        00:00:00 udevd
  324 ?        00:00:00 syslogd
  327 ?        00:00:00 klogd
  335 ?        00:00:00 dbus-daemon
  346 ?        00:00:00 mysqld_safe
  373 ?        00:00:01 mysqld
  393 ?        00:00:00 crond
  412 ?        00:00:00 sshd
  414 tty1     00:00:00 mingetty
  415 tty2     00:00:00 mingetty
  416 tty3     00:00:00 mingetty
  417 tty4     00:00:00 mingetty
  418 tty5     00:00:00 mingetty
  419 tty6     00:00:00 mingetty
  420 ?        00:00:00 sshd
  422 ?        00:00:00 sshd
  423 ttyp0    00:00:00 bash
  456 ttyp0    00:00:00 ps
$

mingetty が 6つ動いていますが、確か仮想ターミナル用だったはずです。そこで、
[Ctrl] + [Alt] + [F2]   ( [ と ] の間の文字は、キーを表します。)

とか試してみたのですがなんの反応もありません。5 つ消すのもなんなので、4つ消してみました。
#vi /etc/inittab
(次の行を頭に # を付けてコメントにします。)

#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6

#
# kill -HUP 1
#

しかし、その後、
Colinux Mailing lists archiveで見つけました。
[Alt]+[F1], [Alt]+[F2] .....

coLinux では、仮想ターミナルを使うときに Ctrl キーは不要でした。

試してみたら、見事に console ウィンドウが切り替わりました。
もちろん、F1がtty1、F2がtty2、...に対応しています。

これは、X Window System を使っている場合などはほとんど関係ないので、テキストベースの coLinux ならではですね。console ウィンドウの作業では、是非利用するつもりです。

変更後の状況を示します。
$ free -k
             total       used       free     shared    buffers     cached
Mem:        126368      47104      79264          0       3168      24588
-/+ buffers/cache:      19348     107020
Swap:       131064          0     131064
$ ps -e
  PID TTY          TIME CMD
    1 ?        00:00:00 init
    2 ?        00:00:00 ksoftirqd/0
    3 ?        00:00:00 events/0
    4 ?        00:00:00 khelper
    5 ?        00:00:00 kthread
    6 ?        00:00:00 kblockd/0
    7 ?        00:00:00 pdflush
    8 ?        00:00:00 pdflush
   10 ?        00:00:00 aio/0
    9 ?        00:00:00 kswapd0
   11 ?        00:00:00 kseriod
   56 ?        00:00:00 kjournald
  107 ?        00:00:00 udevd
  324 ?        00:00:00 syslogd
  327 ?        00:00:00 klogd
  335 ?        00:00:00 dbus-daemon
  346 ?        00:00:00 mysqld_safe
  373 ?        00:00:01 mysqld
  393 ?        00:00:00 crond
  412 ?        00:00:00 sshd
  415 tty2     00:00:00 mingetty
  420 ?        00:00:00 sshd
  422 ?        00:00:00 sshd
  423 ttyp0    00:00:00 bash
  515 tty1     00:00:00 mingetty
  517 ttyp0    00:00:00 ps
$

free が少し減っているような気がしますが、これは Linuxのメモリ管理に詳しく書かれているとおり、バッファとキャッシュに割り振られているからだと思います。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

設定10(CDROMと擬似ターミナル)

2006-12-20 21:46:39 | インストールと設定
fedora5.bat の中で、CDROM はどのように指定するのでしょうか。xml での指定は多くの方が説明されていますが、パラメタではどのように指定するかを調べました。

FAQ によると、
cobd4=DeviceCdrom0 

でよいそうです。マウントは、
# mount -t iso9660 -o ro /dev/cobd4 /mnt

でできました。また、
cobd4=DeviceCdrom0 hdc=:cobd4

とすると、/dev/hdc としてアクセスできます。
# mount -t iso9660 -o ro /dev/hdc /mnt 

です。

ただし、いつも CDROM に対する指定しているとブートが遅くなる気がするので、別の bat ファイルを作って、普段はこのオプションなしですることにしています。

その他にも、FAQ によると、デュアルブートになっている場合に Linux パーティションもアクセスできるらしいです。私は使えないので関係ありませんが、パス名は、 xml 形式で指定する場合、
DeviceHarddiskNPartitionX

のように指定するみたいです。

前に出てきた擬似ターミナル( Pseudo terminal ) ですが、少し調べたら、Linux では、Unix98 pty を使うのが一般的らしいです。最初に設定した ptyp は、以前の擬似ターミナルみたいです。擬似ターミナルといえば、ネットワークに関連することから、多分 BSD からきていると思うのですが、Unix98 pty はもしかして SystemV でしょうか。

ともかくUnix98 pty readmeを見ると、設定が書いてあったのでしてみました。/dev/ptmx がマスタで 、/dev/pts ディレクトリの下にスレーブが自動的に作成される仕組みのようです。man ptmx の NOTE によると、Unix98 pty は devpts ファイルシステムを使っているので、それを /dev/pts にマウントするべしということらしいので、/etc/fstab に指定してマウントする設定が必要です。面白い仕組みです。
# mknod /dev/ptmx c 5 2
# chmod 0666 /dev/ptmx
# ( mkdir /dev/pts は、/dev/pts が既にあるので省略しました。)
# vi /etc/fstab
( 次の1行
none     /dev/pts      devpts     gid=5,mode=620   0 0
を追加しようと思ったのですが、既に、次のような行がありました。そのままに
します。
devpts   /dev/pts      devpts     gid=5,mode=622   0 0  )
#

もちろん実行前に、ptyp、ttyp などを消しておきました。(この間の /etc/rc.d/rc.local の該当部分をコメントしてリブートしました。)これも、なぜだかブートすると、/dev/ptmx が消えてしまいます。同様に /etc/rc.d/rc.local に設定しておきました。/dev/MAKEDEV でも作れそうですが、ここでは参考文献どおりにします。
if [ ! -e /dev/ptmx ] ; then
  mknod /dev/ptmx c 5 2
  chmod 0666 /dev/ptmx
fi

TeraTerm でログインしたときの、tty も、/dev/pts/0 に変わっています。

思うに、coLinux のインストールには、Root FS image が必要ですが、余分なものが入っていると、圧縮しても巨大なファイルになってダウンロードが大変です。そこで、圧縮率を上げるために、ほとんど何も入っていない Root FS image が得られるわけです。だから yum や apt などで、必要なプログラムをどんどん持ってこれるディストリビューションが便利ですね。

何もないために、PAM だ Unix98 pty だと調べられて面白いです。普通こんなものを調べる機会はまずないです。Unix98 pty なんて、昔調べたかも知れないのですが忘却の彼方にいってしまいました。それでつい古い方?をつかってしまいました。これも coLinux の良い点だと思います。

2006-12-11の日記で誤って、実ドメイン名をサンプルに使ってしまいました。お詫びして訂正します。

sample を example に訂正です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MySQLテスト3

2006-12-19 21:32:36 | MySQL
昨日、MySQL のテストがうまくいったので、気をよくして、make test を実行したときに実行される、mysql-test/mysql-test-run も実行してみます。
$ cd ~/src/mysql-5.0.27/mysql-test
$ ./mysql-test-run
Logging: ./mysql-test-run
Installing Test Databases
Removing Stale Files
Installing Master Databases
.........................................
TEST                            RESULT
-------------------------------------------------------
alias                          [ pass ]
.........................................
ctype_ucs_binlog               [ fail ]

Errors are (from /home/espiya/src/mysql-5.0.27/mysql-test/var/log/mysqltest-time) :
mysqltest: Result length mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/ctype_ucs_binlog.result   2006-10-21 03:36:44.000000000 +0300
--- r/ctype_ucs_binlog.reject   2006-12-18 22:20:43.000000000 +0300
***************
*** 15,22 ****
  SET TIMESTAMP=10000"
  SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1"
  SET @@session.sql_mode=0"
! /*!\C latin1 */"
! SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8"
  insert into t2 values (@v)"
  # End of log file
  ROLLBACK /* added by mysqlbinlog */"
--- 15,21 ----
  SET TIMESTAMP=10000"
  SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1"
  SET @@session.sql_mode=0"
! SET @@session.auto_increment_increment=29811, @@session.auto_increment_offset=1124"
  insert into t2 values (@v)"
  # End of log file
  ROLLBACK /* added by mysqlbinlog */"
-------------------------------------------------------
Please follow the instructions outlined at
http://dev.mysql.com/doc/mysql/en/reporting-mysqltest-bugs.html
to find the reason to this problem and how to report this.


Aborting: ctype_ucs_binlog failed in default mode. 
                 To continue, re-run with '--force'.

Ending Tests
Shutting-down MySQL daemon

Master shutdown finished
Slave shutdown finished
$

ctype_ucs_binlog でエラーです。とりあえず --force オプションを指定して先に行きます。
$ ./mysql-test-run --force 2>&1 >TEST.log
$ grep -o '.*\[ fail \]' TEST.log
ctype_ucs_binlog               [ fail ]
mysql_client_test              [ fail ]
mysqlbinlog                    [ fail ]
mysqlbinlog2                   [ fail ]
mysqlcheck                     [ fail ]
mysqldump                      [ fail ]
mysqlshow                      [ fail ]
null_key                       [ fail ]
order_by                       [ fail ]
preload                        [ fail ]
ps                             [ fail ]
query_cache                    [ fail ]
rename                         [ fail ]
rpl000002                      [ fail ]
rpl000005                      [ fail ]
rpl_auto_increment             [ fail ]
rpl_charset                    [ fail ]
rpl_dual_pos_advance           [ fail ]
rpl_innodb                     [ fail ]
rpl_insert_id                  [ fail ]
rpl_insert_ignore              [ fail ]
rpl_loaddata                   [ fail ]
rpl_log                        [ fail ]
rpl_multi_update2              [ fail ]
rpl_multi_update3              [ fail ]
rpl_optimize                   [ fail ]
rpl_replicate_do               [ fail ]
rpl_set_charset                [ fail ]
rpl_sp_effects                 [ fail ]
rpl_sporadic_master            [ fail ]
rpl_timezone                   [ fail ]
rpl_trigger                    [ fail ]
select                         [ fail ]
show_check                     [ fail ]
system_mysql_db                [ fail ]
system_mysql_db_fix            [ fail ]
user_var-binlog                [ fail ]
view                           [ fail ]
$

これは、かなりの数のエラーです。
コンパイルオプションかなにかで解決できるかもしれませんが、coLinux ですから見なかったことにします。どうしてもだめな場合が現れたら、yum でインストールして、FedoraCore にお任せすればよいですから。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MySQLテスト2

2006-12-18 22:20:21 | MySQL
昨日行ったテスト結果を以下に示します。
insert のところで、長い間出力がなく、動いていないのかと思ってしまいました。output ディレクトリのグループを変更しているのは、ここにテスト中にファイルを書き出すからです。つまり、インストール先のテストディレクトリでテストしてしまいました。
# chgrp user /usr/local/mysql/sql-bench/output
# chmod 0775 /usr/local/mysql/sql-bench/output

$ PATH=$PATH:/usr/local/mysql/bin
$ LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql
$ export PATH LD_LIBRARY_PATH
$ cd /usr/local/mysql/sql-bench
$ 
$ perl run-all-tests |tee ~/Test.log
Benchmark DBD suite: 2.15
Date of test:        2006-12-17 22:31:37
Running tests on:    Linux 2.6.11-co-0.6.4 i686
Arguments:
Comments:
Limits from:
Server version:      MySQL 5.0.27 log/
Optimization:        None
Hardware:

alter-table: Total time: 22 wallclock secs ( 0.08 usr  0.00 sys +  0.00 cusr  0.00 csys =  0.08 CPU)
ATIS: Total time: 35 wallclock secs ( 1.56 usr  7.69 sys +  0.00 cusr  0.00 csys =  9.25 CPU)
big-tables: Total time: 21 wallclock secs ( 1.93 usr  7.50 sys +  0.00 cusr  0.00 csys =  9.43 CPU)
connect: Total time: 211 wallclock secs (26.67 usr 51.00 sys +  0.00 cusr  0.00 csys = 77.67 CPU)
create: Total time: 138 wallclock secs ( 8.17 usr  1.31 sys +  0.00 cusr  0.00 csys =  9.48 CPU)
insert: Total time: 2082 wallclock secs (141.46 usr 525.80 sys +  0.00 cusr  0.00 csys = 667.26 CPU)
select: Total time: 631 wallclock secs ( 7.24 usr 55.98 sys +  0.00 cusr  0.00 csys = 63.22 CPU)
transactions: Test skipped because the database doesn't support transactions
wisconsin: Total time: 18 wallclock secs ( 3.30 usr  2.45 sys +  0.00 cusr  0.00 csys =  5.75 CPU)

All 9 test executed successfully

Totals per operation:
Operation             seconds     usr     sys     cpu   tests
alter_table_add                        9.00    0.00    0.00    0.00     100
alter_table_drop                       9.00    0.00    0.00    0.00      91
connect                               17.00    4.06    5.46    9.52   10000
connect+select_1_row                  21.00    5.11    5.51   10.62   10000
connect+select_simple                 20.00    4.61    5.87   10.48   10000
count                                 14.00    0.00    0.03    0.03     100
count_distinct                        14.00    0.08    0.32    0.40    1000
count_distinct_2                      27.00    0.08    0.44    0.52    1000
count_distinct_big                   111.00    0.75    7.00    7.75     120
count_distinct_group                  24.00    0.06    1.30    1.36    1000
count_distinct_group_on_key           20.00    0.17    0.36    0.53    1000
count_distinct_group_on_key_parts     23.00    0.14    1.14    1.28    1000
count_distinct_key_prefix             12.00    0.03    0.24    0.27    1000
count_group_on_key_parts              18.00    0.06    0.99    1.05    1000
count_on_key                         181.00    1.63   13.38   15.01   50100
create+drop                           14.00    2.00    0.14    2.14   10000
create_MANY_tables                    64.00    1.96    0.07    2.03   10000
create_index                           1.00    0.00    0.00    0.00       8
create_key+drop                       15.00    2.82    0.25    3.07   10000
create_table                           0.00    0.00    0.00    0.00      31
delete_all_many_keys                 109.00    0.09    0.00    0.09       1
delete_big                             0.00    0.00    0.00    0.00       1
delete_big_many_keys                 109.00    0.09    0.00    0.09     128
delete_key                             4.00    0.63    0.14    0.77   10000
delete_range                           6.00    0.00    0.00    0.00      12
drop_index                             2.00    0.04    0.00    0.04       8
drop_table                             0.00    0.00    0.00    0.00      28
drop_table_when_MANY_tables           15.00    1.03    0.09    1.12   10000
insert                               143.00   22.78    2.38   25.16  350768
insert_duplicates                     34.00    6.34    0.63    6.97  100000
insert_key                            94.00   10.88    0.69   11.57  100000
insert_many_fields                     6.00    0.38    0.01    0.39    2000
insert_select_1_key                    4.00    0.00    0.00    0.00       1
insert_select_2_keys                   5.00    0.00    0.00    0.00       1
min_max                                9.00    0.00    0.01    0.01      60
min_max_on_key                        41.00    2.38   20.01   22.39   85000
multiple_value_insert                  4.00    0.29    0.14    0.43  100000
once_prepared_select                  52.00    2.72   12.80   15.52  100000
order_by_big                          30.00    4.28   17.85   22.13      10
order_by_big_key                      29.00    3.87   19.52   23.39      10
order_by_big_key2                     26.00    3.09   18.63   21.72      10
order_by_big_key_desc                 28.00    2.80   19.90   22.70      10
order_by_big_key_diff                 29.00    4.12   17.95   22.07      10
order_by_big_key_prefix               27.00    3.22   18.07   21.29      10
order_by_key2_diff                     3.00    0.09    1.85    1.94     500
order_by_key_prefix                    2.00    0.12    1.09    1.21     500
order_by_range                         2.00    0.08    1.07    1.15     500
outer_join                            28.00    0.00    0.00    0.00      10
outer_join_found                      27.00    0.00    0.02    0.02      10
outer_join_not_found                  28.00    0.00    0.00    0.00     500
outer_join_on_key                     23.00    0.00    0.00    0.00      10
prepared_select                       67.00    3.46   25.58   29.04  100000
select_1_row                          23.00    1.88    4.87    6.75  100000
select_1_row_cache                    23.00    1.62    5.20    6.82  100000
select_2_rows                         25.00    1.89    5.67    7.56  100000
select_big                            26.00    2.86   18.70   21.56      80
select_big_str                        11.00    1.93    4.71    6.64   10000
select_cache                         103.00    0.40    3.20    3.60   10000
select_cache2                        102.00    0.32    3.03    3.35   10000
select_column+column                  25.00    2.32    4.94    7.26  100000
select_diff_key                        0.00    0.03    0.12    0.15     500
select_distinct                       10.00    0.09    1.36    1.45     800
select_group                          27.00    0.16    1.43    1.59    2911
select_group_when_MANY_tables         30.00    0.36    0.76    1.12   10000
select_join                            2.00    0.06    0.42    0.48     100
select_key                           132.00    4.73   31.29   36.02  200000
select_key2                          143.00    9.07   52.71   61.78  200000
select_key2_return_key               140.00    7.25   46.41   53.66  200000
select_key2_return_prim              141.00    9.84   73.40   83.24  200000
select_key_prefix                    143.00    8.45   45.45   53.90  200000
select_key_prefix_join                 9.00    0.35    3.78    4.13     100
select_key_return_key                127.00    8.17   64.31   72.48  200000
select_many_fields                    15.00    1.55    7.49    9.04    2000
select_range                          74.00    0.95    7.87    8.82     410
select_range_key2                     15.00    0.50    5.71    6.21   25010
select_range_prefix                   16.00    0.58    5.13    5.71   25010
select_simple                         23.00    1.64    4.17    5.81  100000
select_simple_cache                   23.00    1.61    4.59    6.20  100000
select_simple_join                     1.00    0.05    0.64    0.69     500
update_big                            14.00    0.00    0.00    0.00      10
update_of_key                         21.00    3.18    0.33    3.51   50000
update_of_key_big                     12.00    0.02    0.00    0.02     501
update_of_primary_key_many_keys       19.00    0.06    0.00    0.06     256
update_with_key                      104.00   16.13    2.19   18.32  300000
update_with_key_prefix                44.00    4.22    9.88   14.10  100000
wisc_benchmark                         5.00    1.12    2.25    3.37     114
TOTALS                              3228.00  189.73  642.94  832.67 3425950
$

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MySQLテストと設定

2006-12-17 21:49:00 | MySQL
昨日インストールした、MySQL 5.0.27 をテストしてみます。

# cd sql-bench
# perl run-all-tests

残念ながら、DBI.pm がこのシステムにはないのでテストはできませんでした。DBI.pm をインストールしてみます。perl は、CPAN ( http://www.cpan.org/ ) から持ってこれるはずです。
# perl -MCPAN -e 'install DBI::DBD'
...................................
Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
  /usr/bin/make install  -- OK
#

メッセージがたくさん出て、適当に答えていくと、インストールできました。
しかし、これでもテストすると、今度は mysql.pm がないとエラーになります。更にインストールしましょう。( 長い行は適当に折り返してあります。)
# PATH=$PATH:/usr/local/mysql/bin
# perl -MCPAN -e 'install DBD::mysql'
..................................
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" 
"-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base.............install_driver(mysql) failed: Can't load 
'/root/.cpan/build/DBD-mysql-3.0008/blib/arch/auto/DBD/mysql/mysql.so' 
for module DBD::mysql: libmysqlclient.so.15: cannot open shared object 
file: No such file or directory at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm
 line 230. at (eval 3) line 3
..................................
  /usr/bin/make test -- NOT OK
Running make install
  make test had returned bad status, won't install without force
#

これは、うまくいきません。メッセージから考えて、LD_LIBRARY_PATH を指定してみます。
# LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql/
# export LD_LIBRARY_PATH
# perl -MCPAN -e 'install DBD::mysql'

結果はだめで、make test 中に root にパスワードが設定されているためエラーになっているようです。しかし、root でなくては、今度は make install でエラーになるはずでお手上げです。
しかし、make まではうまくいっているようなので、直接ソースを持ってきてとりあえずインストールだけならできそうです。CPAN から直接取り寄せます。
DBD-mysql-3.0008.tar.gz

展開して試します。先ほどは、確か以下のようなことを自動的に行っていたと思います。
# tar xvzf DBD-mysql-3.0008.tar.gz
# cd DBD-mysql-3.0008
# perl Makefile.PL
# make
# make test
# make install

ここの make test がうまくいかなかったので、これは除いて実行します。
..............................
# make install
#

ここで、mysql のテストすると、root のパスワードで引っかかりますので、普通のユーザで実行してみます。うまく動きました。テストは OK ですが、性能的にどうなのかはよく分かりません。結果は長いので次回示します。

ブート時にサーバを動かすために、support-files/mysqld.server を /etc/init.d に移して少し修正しました。
# cp ~espiya/src/mysql-5.0.27/support-files/mysql.server /etc/init.d
# cd /etc/init.d
# chmod 0755 mysql.server
# vi mysql.server
( datadir 行を修正 )

datadir=/home/data/mysql

#
# chkconfig --add mysql.server
# chkconfig --level 0123456 mysql.server off
# chkconfig --level 3 mysql.server on
#

使用するときは、PATH と LD_LIBRARY_PATH を指定することにします。

日記なので、まとまりがなく読みにくくてすいません。でも普通の Linux を使うような感覚で coLinux が使えるのは分かっていただけたと思います。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MySQL設定

2006-12-16 23:07:00 | MySQL
早速 MySQL を動かしてみましょう。INSTALL-SOURCE を見ながら設定します。
最初に、mysql のユーザとグループを用意します。
# vi /etc/group
( 次の一行を追加します。)

mysql:x:35:

# useradd -d /home/mysql -g mysql -u 35 -s /sbin/nologin mysql
#

コンパイルした、mysql をインストールします。
# make install 2>&1 |tee Install.Log

これで、/usr/local/mysql5027 にインストールされました。バージョンを意識しないように /usr/local/mysql からソフトリンクします。
# ln -s /usr/local/mysql5027 /usr/local/mysql

設定ファイル /etc/my.cnf をとりあえず作成します。
# cp support-files/my-medium.cnf /etc/my.cnf
#

作成されるデータベースを保存するディレクトリは、このままだと /usr/local/mysql5027/var になってしまい、バージョンアップ時に問題になりそうです。そこで、/home/data/mysql に保存することにします。
# mkdir -p /home/data/mysql

後は、INSTALL-SOURCE 通りに実行します。
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql --ldata=/home/data/mysql
# chown -R root .
# chown -R mysql /home/data/mysql
# chgrp -R mysql .
# chgrp -R mysql /home/data/mysql
# bin/mysqld_safe --user=mysql --datadir=/home/data/mysql &
Starting mysqld daemon with databases from /home/data/mysql
#

mysql_install_db 実行時に出力されるメッセージによると、

・ブート時に mysqld デーモンを起動するには、support-files/mysql.server を使うこと。
・bin/mysqladmin を使って MySQL の root ユーザのパスワードをすぐに設定する必要があること。
 bin/mysqladmin -u root password 'new-password'
  bin/mysqladmin -u root -h fedora password 'new-password'

・一時的に mysqld デーモンを動かすには、bin/mysqld_safe を実行すればよいこと。
・テストは、cd sql-bench ; perl run-all-tests で行えること

ですね。忘れないうちに書いておきます。
mysqld デーモンも動いていますので、mysqladmin を実行して root のパスワード( ここでは、abcabcabc とします。)を設定します。
# bin/mysqladmin -u root password 'abcabcabc'
# bin/mysqladmin -u root -h fedora password 'abcabcabc'
#

これで一応完了です。あとは、ブート時 msqld が起動するように support-files/mysql.server を直して設定すればいいわけですが、その前に次回テストしてみたいと思います。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする