我在Slow Leopard(通过MacPorts安装)上运行Ruby 1.9(ruby 1.9.1p376(2009-12-07修订版26041)[i386-darwin10]).
然后我通过MacPorts安装了Ruby MySQL客户端库:安装rb19-mysql
尝试使用它我收到以下错误:
db.rb:4:in `initialize': wrong number of arguments(4 for 0) (ArgumentError)
from db.rb:4:in `new'
from db.rb:4:in `'
我的代码:
require 'mysql'
require 'pp'
dbh = Mysql.new("localhost", "testuser", "testpass", "test")
puts "Server version: " + dbh.get_server_info
Run Code Online (Sandbox Code Playgroud)
好像我在这里遗漏了一些非常基本的东西.
我安装了正确的客户端库吗?我正确使用它?我错过了其他一些依赖项吗?
如果有人能指出我正确的方向,我将不胜感激.
谢谢!
我一生中从未写过一行 Ruby,所以也许我会让自己难堪,但是你不需要Mysql先初始化吗?我很确定该函数需要 0 个参数这一事实意味着它还不存在。
在您提到的包的测试文件中(您让我很好奇),我看到以下行:
assert_nothing_raised{@m = Mysql.init}
Run Code Online (Sandbox Code Playgroud)
但是,您的语法似乎是正确的。来自同一个测试文件
assert_nothing_raised{@m = Mysql.new(@host, @user, @pass, @db, @port, @sock, @flag)}
Run Code Online (Sandbox Code Playgroud)
我假设你需要先做一个Mysql.init()。
如果我错了,请告诉我,我会删除答案。