連載
» 2001年05月07日 00時00分 UPDATE

快速MySQLでデータベースアプリ!(7):Rubyで作るデータベースCGI (1/3)

日本発のオブジェクト指向スクリプト言語RubyとMySQLは非常に相性がいい。今回はこのRubyを使ってデータベースアプリを作ってみよう。

[鶴長鎮一, 渡辺恭弘,MySQLユーザ会]

日本発のスクリプト言語、Ruby

 Rubyは、まつもとゆきひろ氏が開発されたオブジェクト指向スクリプト言語です。Rubyを紹介する際は、このように単なるスクリプト言語ではなく「オブジェクト指向」が枕言葉のように付いてきます。「オブジェクト指向」というとVisual C++の悪夢から敬遠したくなりますが、Rubyは本当に「楽しくプログラミングできる」言語です。

 Perlと同様に変数宣言が不要なのにシンプルな文法が使えることから、可読性の高いソースにすることができます。またメモリ管理も考慮されており、Javaのようなガベージコレクションを備えているため、メモリリークなどにプログラム作業の時間を割かれることも少なくなります。そのため、「Ruby = Perl + Java」と考える方も少なくないようです。

 国産言語ですから、ドキュメントも当初から日本語で整備されていますし、日本語で質問もできます。また、MySQLへの対応も万全です。RubyからMySQLへの操作を可能にする「MySQL拡張ライブラリ」は、MySQLの大御所とみたまさひろ氏が開発したものです。

 では、日本人に生まれた幸せをかみしめつつ、Rubyを試してみましょう。

Rubyと拡張ライブラリのインストール

 RubyからMySQLを利用するには以下のファイルが必要です。

Rubyのインストール

 まずRubyのインストールです。ソースコードを使う場合は、次のようにインストールします。

$ tar xvzf ruby-1_6_3_tar.tgz
$ cd ruby-1.6.3/
$ ./configure
$ make
$ make test
$ su
# make install

MySQL拡張ライブラリのインストール

 Rubyのインストールが終了したら、RubyでMySQLを操作するための拡張ライブラリをインストールします。手順は以下のとおりです。

$ tar xvzf mysql-ruby-2.3.2a.tar.gz
$ cd mysql-ruby-2.3.2a/
$ ruby extconf.rb
$ make
$ ruby -I. test.rb サーバ名 ユーザー名 パスワード (データベース名)
$ su
# make install

注:test.rbの引数にはMySQLが動作しているサーバ名、接続するユーザー名、パスワードを入力します(ユーザーはMySQL上でデータベースを作成することができるユーザーです)。仮のデータベースを作成して削除するだけの、文字どおりMySQL拡張ライブラリのテスト用スクリプトです。データベース名は何でも構いません。「rubytest」という名前の既存データベースがなければ、空欄でOKです。

 RubyのコマンドラインオプションはほぼPerlに準拠しています。

 -I.はファイルの読み込みパスの指定です。test.rbの中にrequire "./mysql.o"という行があり、コンパイルが終わったばかりのオブジェクトファイルをカレントディレクトリから読み込むために-I.でロードディレクトリを“.”(カレント)に指定しています。

 そのほかに、-SでWindows版Rubyなどのように#!/usr/local/bin/rubyを認識しないOSで代わりをさせたり、-Kで漢字コードを指定(EUCなら-Ke)したりできます。

今月のMySQL

 4月末現在では3.23.37がリリースされています。3.23.36からのバグフィックス以外に大きな変更は特に行われていません。

 以前よりうわさの4.0.0ですが、開発は進んでいるようです。今後4.0.0ヘシフトしていくことで、「高速なMySQL」から「高速で高機能なMySQL」へ変化していくことでしょう。現在4.0.0(Development; Alpha)をダウンロードすることはできませんが、4.0.0で何を目指しているか下記URLで確認できます。

http://www.mysql.com/documentation/mysql/bychapter/manual_TODO.html#TODO_MySQL_4.0

この文章の最後、

H.4 Some things we don't have any plans to do
Nothing; In the long run we plan to be fully ANSI 92 / ANSI 99 compliant.

を読む限りまだまだMySQLの面白みは尽きないようです。あとは「long run」がどの程度かかるものなのかが気になるところです。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。