4

我正在用 mechanize 抓取一个站点并推送到一个 mysql 数据库。我经常收到这些系统读取错误,但我不确定解决方案是什么。我正在使用 Ruby-mysql gem。

4

2 回答 2

2

我正在做完全相同的事情(机械化 + mysql),我通过使用 begin/rescue/end 子句包装我的 mysql 调用来解决它:

begin
  mysql_insert data
rescue Interrupt, Errno::EINTR
  mysql_close connection
  connection = mysql_connect
  retry
end

请注意,这会将您的代码置于无限循环中,如果您在实际中使用它,我建议您在其上放置一些限制器。所有的 mysql_* 都是我自己的方法。

于 2011-03-28T23:25:32.317 回答
1

我遇到了同样的错误。在我的情况下,这是由 mysql-gem 的两种不同安装引起的,一种是使用默认的 osx ruby​​ 安装的,rvm gem另一种是使用默认的 osx ruby​​ 安装的。当我运行默认的 osx ruby​​ 但使用 bundler 来获取 rvm 安装的 gem 时,二进制文件必须来自错误的 ruby​​。

检查 rvm 环境并仅使用 rvm 安装的 gems 和 bundler 解决了这个问题。

于 2011-08-22T09:31:45.280 回答