1

我已经安装了 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 创建一个新对象就好了。

4

2 回答 2

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 文档中找到更多信息

于 2012-06-15T22:46:27.140 回答
0

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

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

你可以尝试通过做同样的事情irb吗?顺便说一句,我建议您改为安装mysql2gem。这是一个关于原因的解释:mysql和mysql2 gem有什么区别

于 2012-06-15T22:25:03.937 回答