我有一个连接到几个MySQL数据库的rails应用程序(ruby 2.0.0,Rails 4.0.1)。 与本地数据库的连接始终正常,这是我的配置:
production:
adapter: mysql
encoding: utf8
database: xxx
username: yyy
password: zzz
host: x.x.x.x
port: 3306
reconnect: true
但是连接到远程数据库经常会返回错误,例如连接到我的radius外部数据库会返回以下错误:
Mysql :: Error:: SELECT 1 AS one FROM WHERE `` radacct` radacct`.`username` =? LIMIT 1
多次更新页面,连接已恢复,我可以正确查看数据。这是我的配置:
radius:
port: 3306
adapter: mysql
encoding: utf8
database: xxx
username: yyy
password: zzz
host: x.x.x.x
reconnect: true
connect_timeout: 60
read_timeout: 90
write_timeout: 90
checkout_timeout: 10
reaping_frequency: 30
dead_connection_timeout: 30
我尝试以不同的方式更改计时器的配置,但问题仍然存在。
连接到radius服务器我创建了以下所有共同的模型:
class RadActiveRecord <ActiveRecord :: Base
self.abstract_class = true
establish_connection "radius"
end
例如表radacct使用以下模型:
class RadAcctDetail <RadActiveRecord
self.table_name = "radacct"
end
有问题的错误是任何查询,例如:
def index
@rad_acct_details = RadAcctDetail.all.paginate = (
: order => "radacctid DESC"
: page => params [: page] || 1
: per_page => params [: per_page] || 25)
end
有人有任何建议吗?