使用Mysql Ruby设置连接超时

时间:2011-09-07 07:32:15

标签: mysql ruby configuration connection-timeout

我正在使用mysql(5.1)ruby(1.8.7)连接器从数据库中提取一些数据。有些查询的运行时间比预期的要长,所以我想在这些上设置连接超时。 related post提出的解决方案如下:

require 'rubygems'
require 'mysql'

# connect to the database
db = Mysql.real_connect( 'server', 'user', 'password', 'schema' )

# configure read timeout
db.options(Mysql::OPT_READ_TIMEOUT, 10)

# query and process
begin

  db.query("select * from ..").each_hash do |row|
    # process data if query returned 
  end

rescue Mysql::Error => err
  # handle timeout
end

但是,这对我来说似乎不起作用。任何想法为什么以及如何完成我所追求的目标?感谢。

1 个答案:

答案 0 :(得分:3)

您可能必须在实际连接之前设置选项。

db = Mysql.init
db.options(Mysql::OPT_READ_TIMEOUT, 10)
db.real_connect( 'server', 'user', 'password', 'schema' )