coLinux日記

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

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でシェアする

MySQLインストール

2006-12-15 23:34:42 | MySQL
コタツの部屋に移って、OpenSSH を使って、TeraTerm から coLinux が使えるようになり、ずっと暖かくなりました。

まずは、MySQL からインストールします。先に lynx を入れます。lynx は、coLinux のようにテキストベースで作業するときにソースなどをダウンロードするときに便利です。
# yum install lynx.i386
.................
# which lynx
/usr/bin/lynx
#

これを使って、MySQL公式サイト( http://www.mysql.com/ ) からソースをダウンロードします。  
mysql-5.0.27.tar.gz
mysql-5.0.27.tar.gz.asc

ソースのダウンロードとかは、先ほどの lynx を使うか、Windowsで行い、先ほど用意したc:\Temp を通して Linux 側に持っていっています。この環境では、とりあえず samba は使わないことにしました。MySQL のサイトは、少々複雑でソースまでたどり着くのにちょっと戸惑いました。

まずは、ダウンロードしたソースが問題ないかどうかを出来る範囲でチェックします。ダウンロードサイトに MD5 の値
MD5: 584d423440a9d9c859678e3d4f2690b3

がありましたのでそれを調べます。
$ md5sum mysql-5.0.27.tar.gz
584d423440a9d9c859678e3d4f2690b3  mysql-5.0.27.tar.gz

で、問題なしでした。ついでに 署名も調べます。
$ gpg --verify mysql-5.0.27.tar.gz.asc
...................
gpg: Signature made Sun 22 Oct 2006 06:06:31 AM EDT using DSA key ID 5072E1F5
gpg: Can't check signature: public key not found

$ gpg --import 5072e1f5.txt
...................
gpg: key 5072E1F5: public key "MySQL Package signing key (www.mysql.com) <build@mysql.com>" imported
...................
$ gpg --verify mysql-5.0.27.tar.gz.asc
...................
gpg: Good signature from "MySQL Package signing key (www.mysql.com) <build@mysql.com>"
...................

正しく署名されたものに間違いなさそうです。
早速展開します。
$ mkdir src
$ cd src
$ tar xvzf ../mysql-5.0.27.tar.gz
..............................
$ cd mysql-5.0.27
$

mysql はバージョンアップがよくあるので、インストール先は、/usr/local ではなく、バージョンが分かるようにした方が便利そうです。
$ ./configure --prefix=/usr/local/mysql5027 --with-charset=utf8 --with-openssl --with-extra-charsets=all
.....................
checking for OpenSSL... Could not find an installation of OpenSSL
$

OpenSSL関連がないみたいです。openssl-devel.i386 が入ってないからです。ここは、yum でインストールします。
# yum install openssl-devel.i386
..................................
#

ついでに、zlib-devel も入ったみたいです。もういちど configure を実行します。
................................
Thank you for choosing MySQL!

$

となって、Makefile は作成できました。早速コンパイルします。
$ make 2>&1 | tee  Makeing.list 
................................
$

20~30分くらいであっさりコンパイルできました。coLinux は本当にすばらしいです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする