在脚本运行一段时间后,我在 Ruby 中遇到了“mysql has gone away”错误。
我想尝试告诉 mysql gem 在连接丢失时自动重新连接。
我当前的代码如下所示:
def self.connect()
begin
if !@@dbh.nil?
self.disconnect
end
@@dbh = Mysql.real_connect(@@server, @@user, @@pass, @@db)
puts "[+] Connected to the " + @@db + " database with user '" + @@user + "'"
rescue Mysql::Error => e
# log error
end
end
以下指南 [0] 说 mysql gem 有一个“重新连接”对象变量,但是,我不确定如何在我的代码中使用它。
如何在上面的代码中实现这个选项?
在此先感谢,瑞安
[0] http://www.tmtm.org/en/mysql/ruby/
编辑 - -
好的。我想我已经想通了。
我需要在行@@dbh.reconnect = true
后添加@@dbh = Mysql.real_connect(@@server, @@user, @@pass, @@db)
。
注意:根据 IRC 上的 'nice' chapy,mysql gem 可能不是最好的 Ruby gem。