お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-12-25 23:11:43

kamuycikap
メンバ
登録日: 2008-11-21

Rubyでデータベースプログラミングに挑戦したい

<発生している問題>
./rubydb.rb:6:in `new': Access denied for user 'kamuycikap'@'localhost' (using password: YES) (Mysql::Error)
    from ./rubydb.rb:6

上記エラーが発生します。
手順とソースコードは下記の通りです。

公開されているブログを参考にし、下記手順で必要な物をインストールしました。

KAMUYCIKAP% sudo apt-get install libmysql-ruby1.8             /home/kamuycikap
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  linux-headers-2.6.27-7 linux-headers-2.6.27-7-generic
これらを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
  libmysql-ruby1.8
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
51.5kB のアーカイブを取得する必要があります。
この操作後に追加で 197kB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com intrepid/universe libmysql-ruby1.8 2.7.4-1 [51.5kB]
51.5kB を 0s で取得しました (75.6kB/s)
未選択パッケージ libmysql-ruby1.8 を選択しています。
(データベースを読み込んでいます ... 現在 168038 個のファイルとディレクトリがインストールされています。)
(.../libmysql-ruby1.8_2.7.4-1_i386.deb から) libmysql-ruby1.8 を展開しています...
libmysql-ruby1.8 (2.7.4-1) を設定しています ...


そして、作成したソースコードは以下の通りです。

#!/usr/bin/ruby -Ke

require 'mysql'


object = Mysql.new('localhost','kamuycikap','kinhost')

puts "hello!!"


このソースコードをサンプルを参照しながら書いてみたのですが・・・・よくわかっていません。
上記の「'localhost','kamuycikap','kinhost'」ですが、私が利用しているUbuntuにログインするためのユーザー名とパスワードです。
localhostについてはサンプルそのままです。

Rubyによるデータベースプログラミングに挑戦したいのですが、何をどうやって良いのかよく分かっておりません。

識者の方、是非御教示願います。
可能であればサンプルコードも含めていただけるとありがたいです。
Rubyによるデータベースプログラミングをなんとか習得したいと思います。

お勧めの書籍等あれば、是非紹介してください。

オフライン

 

#2 2008-12-26 08:08:37

ry
メンバ
登録日: 2008-07-30

Re: Rubyでデータベースプログラミングに挑戦したい

kamuycikap による投稿:

作成したソースコードは以下の通りです。

#!/usr/bin/ruby -Ke

require 'mysql'


object = Mysql.new('localhost','kamuycikap','kinhost')

puts "hello!!"


このソースコードをサンプルを参照しながら書いてみたのですが・・・・よくわかっていません。
上記の「'localhost','kamuycikap','kinhost'」ですが、私が利用しているUbuntuにログインするためのユーザー名とパスワードです。

ubuntu に起因する現象ではないので、ruby のフォーラムや MySQL のフォーラム辺りで聴く方が間違いないとは思いますが

Mysql.new() 関数のユーザ名、パスワードは、MySQL に登録してあるものになり、ubuntu にログインするときに使用するものとは異なります
(なお、localhost の部分は、接続する MySQL がどの PC にインストールされているかを指定するもので、この場合はプログラムを実行する PC を示しています)

ubuntu に MySQL をインストールしたときに、root ユーザーのパスワードを聴かれたと思います
この root ユーザーが、MySQL の管理者として MySQL 自身に登録されています
通常は、MySQL のコマンドを使って、root ユーザーとして MySQL に接続して、その他のユーザーを登録して、プログラム等からはそれを使いって MySQL を操作します

とりあえずテスト的に使うのであれば、root ユーザーで MySQL を操作しても良いのではないかとは思います
この場合は Mysql.new() 関数のユーザ名、パスワードに、'root'、<MySQL をインストールしたときに入力した root のパスワード> を渡せば、動くようになると思います

オフライン

 

#3 2008-12-26 11:14:22

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: Rubyでデータベースプログラミングに挑戦したい

mysql-serverをインストール&起動されていないのではないでしょうか?
mysql-serverインストール時に、(mysqlの)root パスワード設定要求されますので、
そのパスワードを使い
object = Mysql.new('localhost','root','rootのパスワード')
でアクセスしてみて下さい。
libmysql-ruby1.8 は、mysql-serverへ、rubyからアクセスするための、クライアントライブラリです。

>#!/usr/bin/ruby -Ke
の -Ke は削除しましょう。
rubyでの日本語を、EUC-JP に設定します。

>Rubyによるデータベースプログラミングに挑戦したいのですが
まずは、入門書にざーっと目を通し、Rubyのプログラミングスタイルを感じ、
それから、MySQLの入門書を読み、使い方を覚えましょう。
この辺の本は、沢山あるので、立ち読みして、自分のレベルに合ったものを購入するのが良いです。

オフライン

 

#4 2009-01-25 14:45:54

kamuycikap
メンバ
登録日: 2008-11-21

Re: Rubyでデータベースプログラミングに挑戦したい

返信がとても遅くなりました。
書き込んでいただいた内容を参考として、MySQLを利用することが出きるようになりました。
原因は、MySQLのパッケージを適当にインストールする中で、rootのパスワードを設定していなかった事やデータベースの使い方その物を理解していなかったことなど様々・・・・お恥ずかしい限りです。

MySQLモニタを利用してデータベースを操作する事から始め、その操作をRubyを利用しプログラムでまとめて操作するイメージを掴むことが
出来ました。

データベース操作に成功したソースコードです。

MySQLモニタを利用してデータベースdb1を作成し、db1にテーブルtb1を作成しました。
tb1に数レコードのデータを入力しています。
下記のソースコードで、tb1に入力されているデータが表示されます。

-----------------------------------------

#!/usr/bin/ruby -Ku

require 'mysql'


db = Mysql.new('localhost','root','','db1')

res = db.query('select * from tb1')
res.each do |row|
  #rowは結果の配列
  puts row.join("\t")
end

一通り出きるようになるまでの手順やRubyソースコード等は、私のブログの方で公開するために編集中です。
後ほど公開しようと思います。

アドバイスありがとうございました。

オフライン

 

Board footer

Powered by FluxBB