Ruby'mysql'宝石分段错误

时间:2012-03-25 21:57:32

标签: mysql ruby

我正在使用Ruby 1.9.3并且我遇到了这个奇怪的问题,'mysql'Ruby gem在执行20个查询之后就完全出现了分段错误。

这是执行查询的代码:

def load
        dbh = Mysql::new($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME)
        begin
            res = dbh.query("SELECT word, type FROM words WHERE word = '#{dbh.escape_string(word)}';")
        rescue Mysql::Error => e
            puts "Error occurred during SQL query"
        end
        res.each do |row|
            @word = row[0]
            @type = row[1]
        end
        dbh.close if dbh
    end

每次用户输入一个单词时都会调用此代码,对于查询正常工作的前20个单词,无论我放在那里,都会在21日进行段错误。

我在Windows上,使用Ruby 1.9.3p0和ruby'mysql'gem version 2.8.1,使用MySQL 5.5.16。我已经检查过我复制到Ruby bin文件夹的libmysql.dll文件与我安装的MySQL版本相同。

您对可能出现的问题有任何其他暗示吗?

1 个答案:

答案 0 :(得分:1)

以下是任何遇到此问题的人的解决方案:

  

看来原因是这个版本的mysql gem不起作用   使用MySQL 5.1 lib。 [...]下载MySQL 5.0 noinstall   版本mysql-noinstall-5.0.89-win32.zip来自   http://dev.mysql.com/downloads/mysql/5.0.html。解压缩libmysql.dll   并将其复制到C:\ Ruby \ bin。然后,问题就解决了。我仍然   运行MySQL 5.1。但是Ruby使用这个MySQL 5.0版本的dll。

来源:http://fuyun.org/2010/01/ruby-mysql-adapter-on-windows/