我正在尝试从观察服务器代理图像并更新database.yml
,如下所示(注意它不是在production
或development
下缩进,因为它是相同的数据库而我宁愿没有两次定义相同的凭证):
production:
..
observium:
adapter: mysql2
database: observium
username: username
password: password
host: observium.domain.com
port: 3306
wait_timeout: 86400
development:
..
然后在全新的课程observium_port.rb
class ObserviumPort < ActiveRecord::Base
establish_connection :observium
self.table_name = 'ports'
def self.get_port(circuit)
result = ObserviumPort.find(
:first,
:conditions => ['port_descr_circuit = ?', circuit.id],
:order => 'ifName ASC',
:limit => 1
)
return result.port_id
end
end
只需port = ObserviumPort.get_port(circuit).to_s
即可从另一个班级调用。
问题是这在我的本地计算机上完全正常,但在登台服务器上,我收到以下错误:
Mysql2::Error (Can't connect to MySQL server on 'observium.domain.com' (4)):
然而,最奇怪的是,从登台服务器上的命令行连接完全正常(mysql -u username -p password -h observium.domain.com
)。
我尝试使用ip地址来避免DNS查找,但错误仍然相同。
mysql2 gem版本也有细微差别,但两个环境现在都运行完全相同的版本。