mysql:1632
From: "N.Yoshida" <"N.Yoshida" <yosh_no@xxxxxxxxxx>>
Date: Wed, 23 Feb 2000 16:45:27 +0900
Subject: [mysql 01632] Re: How to run mySQL
>おかゆきおです。 > > SQLRubyをインストールしてみたのですが、 >> >>ruby-1.4.2.lzh を C:\ で展開するだけ。 >>mysql.dll も含んでいるので手間いらず。 >>もし動かなかったら、自分でなんとかしてください :-P >> > いろいろやってみまして、なんとか動かそうとしています。 > そこで、質問させていただきたいのですが、 > > Rubyが起動する状態にして、 > いろいろな、***。rb ファイルを、\ruby にコピーして >試したら、 > >requier というファイルがなくて、ロードできないというエラーになります。 > このファイルが、ないのはなぜでしょうか? 吉田です。 Windows用のruby/mysql/gtk+の環境整備まわりを村上さんのドキュメントをもとに 整理しなおしてみました。ちょっと長いですが参考までにどうぞ。 ------(はじまり)-------------------------------------------------------------- ◆◆Windows用 RubyMysqlAdmin,MySQL-Rubyのインストール 000/02/08 吉田 ┌────────────────────────────────────┐ │ruby-1_4_2.lzh http://www.softagency.co.jp/ │ │ruby-gtk-022.lzh http://www.softagency.co.jp/ │ │rubymysqladmin-19999924.tgz http://www.softagency.co.jp/ │ └────────────────────────────────────┘ ■MySQL-Ruby、ruby-gtk のインストール [プログラムの関連] ┌────────────────────────────────────┐ │ │ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │→│ruby-gtk│→│ ruby │→│mysql │→│ MySQL │ │ │ │ │ │ │ │ │ │ -ruby │ │ │ │ │ └┬──┬┘ │ │ │ │ │ │ │ │ │ │ └──┘ └────┘ └────┘ └────┘ └────┘ │ │ ↑ ↑ ↑ │ │ │ │ │ │ │ ┌──────────────────┐ │ │ │ │ │ │ │ RubyMysqlAdmin │ │ │ │ │ │ │ └──────────────────┘ │ │ │ └────────────────────────────────────┘ 1)Rubyのインストール ・上記のrubyはmysql-rubyが含まれており、以下のように展開する。 ・gimpパッケージをインストールする場合には、ライブラリの版数によって動作に影 響があるため、gtk関連のdllは ruby.exeのディレクトリに置くのがよい。 ┌────────────────────────────────────┐ │c:\usr─local┬bin┬ruby.exe │ │ │ ├rubynw.dll │ │ │ ┌│──────┐ │ │ │ │├........ │←────────────────┐ │ │ │ │└........ │ │ │ │ │ └───────┘ │ │ │ ├man │ │ │ └lib┬ruby─1.4┬i386-mswin32┬mysql.dll │ │ │ │ │ ├socket.dll │ │ │ └...... │ ├win32api.dll │ │ │ ↑ ├irb─.... ├.......... │ │ │ │ ├net─.... │ │ │ │ │ │ │ │ │ ├base64.rb │ │ │ │ ├cgi.rb │ │ │ │ ├...... │ │ │ │ └...... │ │ │ │ │ │ │ └───────────────────┐ │ │ │ │ │ │ └───────────────────────────────│──│─┘ │ │ 2)ruby-gtkのインストール │ │ │ │ ・ruby-gtk-022.lzhを展開し以下に示すようにコピーする。 │ │ (コピー後、c:\ruby-gtk-022ディレクトリは消してよい) │ │ │ │ ┌───────────────────────────────│──│─┐ │ ┌────┐ │ │ │ │c:\ruby-gtk-0.22┬gimp_dll─┬windows ─┬im.pal│─→ │ │ │ │ │ │ │└im.rc │c:\windows │ │ │ │ ┌│────┐│ └────┘へコピー │ │ │ │ │├gtk.dll ├─────────────────┘ │ │ │ └│────┘│ │ │ │ │ ┌│─────────┐ │ │ │ │ │├gdk_imlib.dll │ │ │ │ └gtk.lib │├gdk-1.3.dll │ │ │ │ │├gimp-1.1.dll │─────────┘ │ │ │├gimpui-1.1.dll │ │ │ │├............ │ │ │ │├............ │ │ │ │├ │ │ │ │└imlib-tiff.dll │ │ │ └──────────┘ │ │ │ └────────────────────────────────────┘ 3)ruby.exeのディレクトリをPATH環境変数に設定する。 ・NT 4.0の場合: コントロールパネルの「システム」→「環境」 95、98の場合: autoexec.batのPATH変数 [PATH環境変数の例] ┌────────────────────────────────────┐ │c:\win32app\jperl\bin\MSWin32-x86-object;c:\win32app\jperl\bin;c:\bat;次│ │c:\etc;%SystemRoot%\system32;%SystemRoot%;C:\OASYS\PBIN;c:\usr\local\bin│ │ ◆最後尾に追加 │ └────────────────────────────────────┘ ■RubyMysqlAdminのインストール 1)rubymysqladmin-19990924.tgzを展開する ┌────────────────────────────────────┐ │c:\rubymysqladmin┬altercreate.rb │ │ ├brousetblwin.rb │ │ ├............... │ │ ├rubymysqladmin スクリプト本体 │ │ └rubymysqladmin.rc │ └────────────────────────────────────┘ 2)全てのスクリプトモジュールについて、EUC文字コード(JISもあり)からSJISコードに 変換する。 -nkfでコード変換 (例えば、nkf32.exe -s 変換前のファイル > 変換後のファイル) 3)スクリプト本体の rubymysqladminのコード設定を以下のように変更する。 ┌────────────────────────────────────┐ │#!/usr/bin/ruby │ │# .rb ファイルをインストールした先を指定します │ │$LOAD_PATH << "c:/usr/local/lib/1.4/i386-mswin32" ◆mysql.dllの格納先 │ │# $initscript="/usr/local/share/mysql/mysql.server" │ │$initscript="/etc/init.d/mysql" │ │logo="logo.xpm" │ │require 'kconv' │ │require 'gtk' │ │require 'mysql' │ │require 'kanji' │ │require 'mymysql' │ │Gtk::RC.parse("rubymysqladmin.rc") │ │#defstyle = Gtk::Widget::get_default_style() │ │#$mystyle = defstyle.copy │ │# font = Gdk::Font::fontset_load(myfont) │ │# $mystyle.set_font(font) │ │# Gtk::Widget::push_style($mystyle) │ │########## │ │$KCODE='E' ; $userkanji='E'; ◆→ $KCODE='S' ; $userkanji='S';に変更 │ │$dbserver='localhost'; $dbuser=''; $dbport=3306;$dbpass='';$dbkanji='N';│ │ $current_db=nil; $current_table=nil; │ │$my=nil; $myres=nil; │ │ │ │########## │ │#-------------- │ │require 'style' │ │..................................... │ └────────────────────────────────────┘ 4)リソースファイル rubymysqladmin.rcのフォント設定を以下のように変更する。 ┌────────────────────────────────────┐ │# font の変更を行う際はここをかえます。 │ │# 12ドッとなら -misc-fixed-medium-r-normal--12-120-*-*-*-*-jisx0208.1983│ │-* とか │ │ │ │style "defaultfont" = "default" │ │{ │ │# fontset = "-adobe-helvetica-medium-r-normal--14-120-*-*-*-*-*-*,-misc-│ │fixed-medium-r-normal--14-120-*-*-*-*-jisx0208.1983-*" ◆変更前 │ │font = "-unknown-*-*-r-normal-*-*-90-*-*-*-*-windows-shiftjis" ◆変更後│ │} (9ポフォント)│ │class "GtkWidget" style "defaultfont" │ │#widget_class "*" style "default" │ └────────────────────────────────────┘ ■RubyMysqlAdminの実行方法 > ruby rubymysqladmin (cr) ■MySQL/DBのアクセス ・スクリプトファイルが Cドライブ以外にある場合、mysqlモジュールを探せず、ロー ドに失敗する。 →$LOAD_PATH変数にmysql.dllのインストール先ディレクトリを追加することで解決 ■サンプルスクリプト ┌────────────────────────────────────┐ │#サンプルプログラム │ │require 'mysql' │ │ │ │#-----------------------------------------------------------------------│ │# DB名をリストアップ list_dbsメソッドを使用 │ │# host="vhost" │ │ host="fz002178" │ │ user="root" │ │ pass="" │ │ m=Mysql.new(host,user,pass) │ │ printf "-----<list_dbs>--------\n" │ │ m.list_dbs.each do |db| #データベース名を配列で得る│ │ printf "*(%-s)\n",db │ │ end │ │ │ │#-----------------------------------------------------------------------│ │#テーブル名をリストアップ list_tablesメソッドを使用 │ │ db="bics" │ │ m=Mysql.new(host,user,pass,db) │ │ printf "-----<list_tables>--------\n" │ │ m.list_tables.each do |tbl| #テーブル名を配列で得る │ │ printf "+(%-s)",tbl │ │ end │ │ printf "\n" │ │ │ │#-----------------------------------------------------------------------│ │#フィールド名をリストアップ fetch_fieldsメソッドを使用 │ │ db="bics" │ │ tbl="USG" │ │ m=Mysql.new(host,user,pass,db) │ │ printf "-----<list_fields>--------\n" │ │ m.list_fields(tbl).fetch_fields.each do |f|#MysqlFieldオブジェクト配列│ │ printf "-(%-s)",f.name #フィールド名 │ │ end │ │ printf "\n" │ │ │ │#-----------------------------------------------------------------------│ │# DB名をリストアップ fetch_fieldsメソッドを使用 │ │# host="vhost" │ │ user="root" │ │ pass="" │ │ db="eqpd" │ │ m=Mysql.new(host,user,pass,db) │ │ sql="select f00,f01,f02,f03,f04,f05,f06 from eqp" \ │ │ + " where f05 like \'9688%\'" \ │ │ + " and f00=f01" #行の継続: \の直後に改行 │ │ rc=m.query(sql) │ │ flds=rc.fetch_fields.filter do |f| f.name end #フィールド名を得る │ │ printf "-----<fetch_fields>--------\n" │ │ printf "field name=(%s)\n",flds.join(" ") │ │ │ │#-----------------------------------------------------------------------│ │# 検索レコードを出力 fetch_hashメソッドを使用 │ │# host="vhost" │ │ user="root" │ │ pass="" │ │ db="eqpd" │ │ m=Mysql.new(host,user,pass,db) │ │ sql="select f00,f01,f02,f03,f04,f05,f06,f07,f08 from eqp" \ │ │ + " where f08 like \'吉田%\'" \ │ │ + " and f00=f01" │ │# + " where f05 like \'9688%\'" \ │ │ rc=m.query(sql) │ │ printf "-----<fetch_hash>--------\n" │ │ while row=rc.fetch_hash │ │ printf "%-8.8s",row["f00"] │ │ printf " %-8.8s",row["f01"] │ │ printf " %-12.12s",row["f02"] │ │ printf " %-12.12s",row["f03"] │ │# printf " %-8.8s",row["f04"] │ │ printf " %-6.6s",row["f05"] │ │ printf " %-10.10s",row["f06"] │ │ printf " %-6.6s",row["f07"] │ │ printf " %-10.10s",row["f08"] │ │ printf "\n" │ │ end │ │ │ │#-----------------------------------------------------------------------│ │# 検索レコードを出力 イテレータを使用 │ │# host="vhost" │ │ user="root" │ │ pass="" │ │ db="eqpd" │ │ m=Mysql.new(host,user,pass,db) │ │ sql="select f00,f01,f02,f03,f04,f05,f06,f07,f08 from eqp" \ │ │ + " where f05 like \'9688%\'" \ │ │ + " and f00=f01" │ │ rc=m.query(sql) │ │ printf "-----<MysqlRes.each_hash>------\n" │ │ rc.each_hash do |row| │ │ printf "%-8.8s",row["f00"] │ │ printf " %-8.8s",row["f01"] │ │ printf " %-12.12s",row["f02"] │ │ printf " %-12.12s",row["f03"] │ │# printf " %-8.8s",row["f04"] │ │ printf " %-6.6s",row["f05"] │ │ printf " %-10.10s",row["f06"] │ │ printf " %-6.6s",row["f07"] │ │ printf " %-10.10s",row["f08"] │ │ printf "\n" │ │ end │ │ │ │#-----------------------------------------------------------------------│ │# 検索レコードを出力 fetch_rowメソッドを使用 │ │# host="vhost" │ │ user="root" │ │ pass="" │ │ db="eqpd" │ │ m=Mysql.new(host,user,pass,db) │ │ sql="select f00,f01,f02,f03,f04,f05,f06,f07,f08 from eqp" \ │ │ + " where f05 like \'9688%\'" \ │ │ + " and f00=f01" │ │ rc=m.query(sql) │ │ printf "-----<fetch_row>--------\n" │ │ while row=rc.fetch_row #1行を得る │ │ printf "%-8.8s",row[0] │ │ printf " %-8.8s",row[1] │ │ printf " %-12.12s",row[2] │ │ printf " %-12.12s",row[3] │ │# printf " %-8.8s",row[4] │ │ printf " %-6.6s",row[5] │ │ printf " %-10.10s",row[6] │ │ printf " %-6.6s",row[7] │ │ printf " %-10.10s",row[8] │ │ printf "\n" │ │ end │ │ │ │#-----------------------------------------------------------------------│ │# 検索レコードを出力 イテレータを使用 │ │# host="vhost" │ │ user="root" │ │ pass="" │ │ db="eqpd" │ │ m=Mysql.new(host,user,pass,db) │ │ sql="select f00,f01,f02,f03,f04,f05,f06,f07,f08 from eqp" \ │ │ + " where f05 like \'9688%\'" \ │ │ + " and f00=f01" │ │ rc=m.query(sql) │ │ printf "-----<MysqlRes.each>------\n" │ │ rc.each do |row| │ │ printf "%-8.8s",row[0] │ │ printf " %-8.8s",row[1] │ │ printf " %-12.12s",row[2] │ │ printf " %-12.12s",row[3] │ │# printf " %-8.8s",row[4] │ │ printf " %-6.6s",row[5] │ │ printf " %-10.10s",row[6] │ │ printf " %-6.6s",row[7] │ │ printf " %-10.10s",row[8] │ │ printf "\n" │ │ end │ └────────────────────────────────────┘ ------(おわり)---------------------------------------------------------------- ------------------------------------------------------------------------- 吉田 伸次(N.Yoshida) E-mail:yosh_no@xxxxxxxxxx nifty :TCN00171@xxxxxxxxxx -------------------------------------------------------------------------
1585 2000-02-15 16:56 [とみたまさひろ <tomm] ML log on web 1586 2000-02-15 17:06 ┣["N.Yoshida" <yosh_no] 1587 2000-02-15 17:16 ┣[Y. Tsutsui <tutui@xx] 1589 2000-02-15 20:11 ┣[<endot@xxxxxxxxxx> ] 1609 2000-02-21 16:43 ┃┗[とみたまさひろ <tomm] 1610 2000-02-21 17:03 ┃ ┗["Hiroshi Ozeki" <oze] 1611 2000-02-21 17:10 ┃ ┗[Kenji Kiyota <kenji-] 1612 2000-02-21 17:20 ┃ ┗["Hiroshi Ozeki" <oze] 1613 2000-02-21 17:58 ┃ ┗[Kenji Kiyota <kenji-] 1614 2000-02-21 18:06 ┃ ┗["Hiroshi Ozeki" <oze] 1615 2000-02-21 18:13 ┃ ┣[Tom Mishima <tmishim] 1617 2000-02-21 19:49 ┃ ┃┗["Hiroshi Ozeki" <oze] 1634 2000-02-24 13:08 ┃ ┃ ┗[Tamon Nomura <tamon@] 1651 2000-03-03 02:10 ┃ ┃ ┗[とみたまさひろ <tomm] 1652 2000-03-03 08:27 ┃ ┃ ┗[<takeshi@xxxxxxxxxx>] 1653 2000-03-03 10:39 ┃ ┃ ┣[Y. Tsutsui <tutui@xx] 1655 2000-03-03 12:01 ┃ ┃ ┃┣[<takeshi@xxxxxxxxxx>] 1656 2000-03-03 12:11 ┃ ┃ ┃┃┣["Tomoyuki Asakawa" <] 1658 2000-03-03 12:18 ┃ ┃ ┃┃┗[とみたまさひろ <tomm] 1657 2000-03-03 12:15 ┃ ┃ ┃┗[とみたまさひろ <tomm] Japanese MySQL User Group (Re: Re: ML log on web) 1664 2000-03-03 14:54 ┃ ┃ ┃ ┗[Y. Tsutsui <tutui@xx] 1667 2000-03-03 15:42 ┃ ┃ ┃ ┣[<takeshi@xxxxxxxxxx>] 1670 2000-03-03 15:58 ┃ ┃ ┃ ┃┗[Y. Tsutsui <tutui@xx] 1673 2000-03-03 16:29 ┃ ┃ ┃ ┃ ┣[<takeshi@xxxxxxxxxx>] Re: Japanese MySQL User Group 1674 2000-03-03 16:34 ┃ ┃ ┃ ┃ ┗[Seiji Tateyama <tate] 1676 2000-03-03 16:53 ┃ ┃ ┃ ┗[Tamon Nomura <tamon@] 1678 2000-03-03 17:46 ┃ ┃ ┃ ┗["Tomoyuki Asakawa" <] 1661 2000-03-03 14:30 ┃ ┃ ┗[Seiji Tateyama <tate] 1663 2000-03-03 14:49 ┃ ┃ ┗[TOMITA Masahiro <tom] 1665 2000-03-03 14:55 ┃ ┃ ┗[Seiji Tateyama <tate] 1669 2000-03-03 14:58 ┃ ┃ ┗[Y. Tsutsui <tutui@xx] 1671 2000-03-03 16:10 ┃ ┃ ┗[とみたまさひろ <tomm] 1672 2000-03-03 16:28 ┃ ┃ ┗[Seiji Tateyama <tate] 1616 2000-02-21 18:22 ┃ ┗[Kenji Kiyota <kenji-] 1591 2000-02-16 09:24 ┗[<takeshi@xxxxxxxxxx>] 1593 2000-02-16 10:30 ┣[とみたまさひろ <tomm] 1600 2000-02-17 02:51 ┃┗[とみたまさひろ <tomm] 1605 2000-02-18 00:02 ┃ ┗[tateyan <tateyan@xxx] 1606 2000-02-20 03:29 ┃ ┗[とみたまさひろ <tomm] 1623 2000-02-22 10:39 ┃ ┗[とみたまさひろ <tomm] 1635 2000-02-25 01:13 ┃ ┗[とみたまさひろ <tomm] 1599 2000-02-16 23:35 ┗["okaukio+mls" <jtz40] 1601 2000-02-17 12:25 ┗[とみたまさひろ <tomm] 1603 2000-02-17 15:38 ┗[<takeshi@xxxxxxxxxx>] 1630 2000-02-23 09:00 ┗["okaukio+mls" <jtz40] How to run mySQL -> 1632 2000-02-23 16:45 ┗["N.Yoshida" <yosh_no] 1633 2000-02-24 01:15 ┣["okaukio+mls" <jtz40] 1636 2000-02-25 08:14 ┗[<takeshi@xxxxxxxxxx>] 1637 2000-02-25 09:24 ┗["N.Yoshida" <yosh_no] 1638 2000-02-25 10:57 ┗[<takeshi@xxxxxxxxxx>]