
Ubuntu日本語フォーラム

ログインしていません。
<発生している問題>
./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によるデータベースプログラミングをなんとか習得したいと思います。
お勧めの書籍等あれば、是非紹介してください。
オフライン
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 のパスワード> を渡せば、動くようになると思います
オフライン
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の入門書を読み、使い方を覚えましょう。
この辺の本は、沢山あるので、立ち読みして、自分のレベルに合ったものを購入するのが良いです。
オフライン
返信がとても遅くなりました。
書き込んでいただいた内容を参考として、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ソースコード等は、私のブログの方で公開するために編集中です。
後ほど公開しようと思います。
アドバイスありがとうございました。
オフライン