Ruby mysql gem错误

时间:2012-06-15 22:13:21

标签: mysql ruby-on-rails ruby ruby-on-rails-3

我已经安装了mysql gem,但是我遇到了第一个障碍:

 initialize': wrong number of arguments(4 for 0) (ArgumentError)
 from open.rb:14:in `new' 
 from open.rb:14:in `<main>'

此代码的结果是:

 require 'mysql'

 db = Mysql.new('localhost','root','','test')
 puts db

我正在关注本教程中的代码:

http://rubylearning.com/satishtalim/ruby_mysql_tutorial.html

看起来新方法不会接受4个参数。我不知道为什么。 Mysql.new创建一个新对象就好了。

2 个答案:

答案 0 :(得分:2)

使用Mysql2 gem:

gem install mysql2

然后:

require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
results = client.query("show databases")
results.each do |row|
  puts row["Database"]
end

您可以在gem documentation

中找到更多信息

HTH!

答案 1 :(得分:0)

第14行是您声明db = Mysql.new('localhost','root','','test')的行吗?

我刚刚打开irb,安装了gem,复制了你的行,它运行得很好 - 它按预期返回了一个Mysql对象。

你能尝试通过irb做同样的事吗?顺便说一句,我建议您安装mysql2 gem。以下是对原因的解释:What the difference between mysql and mysql2 gem