有没有人从Ruby成功连接到MySQL?

时间:2009-01-12 20:56:05

标签: mysql ruby

我开始变得有点绝望,试图让ruby脚本连接到MySQL。

我已经放弃了DBI,因为无论我做什么,我似乎都无法让它工作。我想我可以从ruby-mysql中使用mysql.rb获得更多运气。但是,在使用它时我收到以下错误:

./mysql.rb:453:in `read': Client does not support authentication protocol requested by server; consider upgrading MySQL client (Mysql::Error)

我从googling that error message收集到这意味着我的MySQL版本太新了,不支持旧式密码。我在共享服务器上并且没有root访问权限,因此我无法对MySQL配置进行修改。

我的版本,顺便说一句,是:

mysql  Ver 14.7 Distrib 4.1.22, for pc-linux-gnu (i686) using readline 4.3

有没有人成功获得ruby连接到MySQL?我一直在Windows下尝试,因为我在我的Windows机器上有管理员访问权限,但如果有办法在Linux上没有root访问权限,那就更好了。

5 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

听起来你已经遇到了MySQL怪癖。在版本5.0的某些时候,他们改变了连接密码的格式。但这很容易解决:http://dev.mysql.com/doc/refman/5.1/en/old-client.html

(另外,查看Ruby Sequel gem,它可以让你用各种数据库做一些真正有趣的东西,而且没有ActiveRecord的开销:http://sequel.rubyforge.org/documentation.html

答案 2 :(得分:1)

你想做什么?我认为可以使用Rails的ActiveRecord组件建立与MySQL的连接。我会看看我是否能找到一些文档来支持这一点,我会更新这个答案。

link to ActiveRecord/MySQL integration

更新:要使用ActiveRecord进行查找,您需要创建表示要从中提取数据的表的各种模型类,并指定它们之间的关系。完成后,您将能够执行以下操作:

SomeModel.find(:all, :conditions => ['some_column = ?', some_value]

我过去曾使用这种方法为我的Rails应用提供对WordPress数据的访问权。

答案 3 :(得分:1)

在我的测试机器上从Ruby连接MySQL时没有任何问题。

您提到您正在使用共享托管服务提供商。如果他们的ruby-mysql版本与旧版密码不兼容,那么他​​们的支持人员可能会对MySQL中的用户行进行更改。

答案 4 :(得分:-1)

可能是您使用的是旧版本的mysql,需要升级它。