mysql - 使用 Mysql Ruby 设置连接超时

标签 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

但是,这似乎对我不起作用。有什么想法为什么以及如何实现我所追求的目标吗?谢谢。

最佳答案

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

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

关于mysql - 使用 Mysql Ruby 设置连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330303/

相关文章:

ruby - Lisp 和 Erlang 原子、Ruby 和 Scheme 符号。它们有多有用?

java - 如何让 .jar 识别和使用捆绑的 log4j.xml 文件?

java - 如何使用 Spring Boot 避免由另一个库配置外部库

ruby-on-rails - 在 FreeBSD 上编译 Assets 时出现堆栈一致性错误

typescript - 如何在angular2中预加载配置文件

mysql - 如何找到具有外键行且列等于某值的行

php - 如何将数据插入到两个不同的表中?

php - 允许用户在 PHP 中上传个人资料图片

javascript - 为什么 javascript 无法获取 php 生成的 html 的值?

ruby-on-rails - 如何用monit监控delayed_job