尝试从OS X上的Rails连接到Oracle时出错

我完成了这里描述的所有步骤来设置我的OS X机器,以允许我从Rails应用程序连接到Oracle。

在我的应用程序中设置database.yml文件:

 development: adapter: oracle_enhanced host: [SERVER IP ADDRESS] database: [ORACLE INSTANCE SID] username: xxx password: yyy encoding: utf8 

也尝试使用域名。

在Rails控制台中试过……

 >> con = ActiveRecord::Base.connection 

但它挂了很长时间然后错误超时……

 OCIError: ORA-12170: TNS:Connect timeout occurred from env.c:257:in oci8lib.so from /usr/local/lib/ruby/site_ruby/1.8/oci8.rb:229:in `initialize' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-oracle_enhanced-adapter-1.2.0/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:184:in `new' from /usr/local/lib/ruby/gems/1.8/gems/activerecord-oracle_enhanced-adapter-1.2.0/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:184:in `new_connection' [...] 

有没有人在OS X上工作并知道如何解决这个问题?

您应该拥有host:行或database:行,但不能同时拥有两者。

如果您有TNS条目,请使用database:行。

 database: orcl ## orcl is an entry in tnsnames.ora 

否则使用host: format。

 host: dbhost.example.com/orcl # dbhost: network address of the database host # orcl: database instance name 

更多说明:

如何使用Oracle配置Ruby on Rails?

如果你的Oracle客户端软件安装了sqlplus,你应该先尝试连接它,以确保问题是你的Rails配置,而不是你的连接信息或服务器本身。