[前][次][番号順一覧][スレッド一覧]

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>]