programing

레일 앱을 Oracle에 연결할 수 없음

powerit 2023. 10. 25. 23:49
반응형

레일 앱을 Oracle에 연결할 수 없음

Oracle을 실행하는 서버가 있으며 IP는 192.168.1.50입니다.

제 리눅스 박스에서 이 오라클 서버에 연결해야 합니다.그런 다음 Oracle Instant 클라이언트를 설치하고 환경 변수를 그에 맞게 설정했습니다.

OCI_INClude_DIR=/home/luc/instantclient_11_2/sdk/include
LD_LIBRARY_PATH=/홈/luc/인스턴트클라이언트_11_2
DYLD_LIBRARY_PATH=/home/luc/instantclient_11_2/
OCI_LIB_DIR=/home/luc/instantclient_11_2
ORACLE_HOME=/home/luc/instant클라이언트_11_2

적절한 보석도 설치했습니다.

ruby-oci8 (2.1.0)

모델을 정의하고 rake db:migrate를 실행하면 다음 오류 메시지가 나타납니다.

rake aborted!
ORA-12154: TNS:could not resolve the connect identifier specified
oci8.c:360:in oci8lib_191.so
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/ruby-oci8-2.1.0/lib/oci8/oci8.rb:123:in `initialize'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:319:in `new'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:319:in `new_connection'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:429:in `initialize'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:24:in `new'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_oci_connection.rb:24:in `initialize'
/home/luc/.rvm/gems/ruby-1.9.3-p125/gems/activerecord-oracle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanced_connection.rb:9:in `new'
....

나의 database.yml은:

development:
  adapter: oracle_enhanced
  host:  192.168.1.50:1521/orcl
  username: USER
  password: PASS

sqlplus 연결은 완벽하게 작동합니다.

sqlplus USER/PASS@192.168.1.50:1521/orcl

SQL*Plus: Release 11.2.0.3.0 Production on Wed Mar 21 17:34:26 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 

이 콘프에 뭔가 빠진 것이 있습니까?

갱신하다

명령줄에서 테스트했는데 연결 상태가 양호합니다.

rubygems -e "'oci8'이 필요합니다. OCI8.new('USER', 'PASS', 192.168.1.50/또는 cl').exec('users'에서 * 선택) do |r| puts r.join(','; end").

=> 확인

irb와 같은 것:

ActiveRecord::Base.establish_connection(:adapter => "oracle_enhanced", :database => "//192.168.1.50/orcl",:username => "USER",:password => "PASS")

=> 확인

내 레일스 앱에서 아직도 작동이 안 돼요.

업데이트 2

호스트 대신 데이터베이스를 사용하면 다음을 해결할 수 있습니다.

development:
  adapter: oracle_enhanced
  database:  //192.168.1.50:1521/orcl
  username: USER
  password: PASS

호스트 대신 데이터베이스를 사용하면 다음을 해결할 수 있습니다.

development:
  adapter: oracle_enhanced
  database:  //192.168.1.50:1521/orcl
  username: USER
  password: PASS

EZConnect 구문을 사용하여 Oracle에 연결하려면host당신의database.yml파일에는 선행 슬래시가 포함되어야 합니다. 즉,

host: //192.168.1.50:1521/orcl

Ruby on Rails의 Oracle에 연결하기에 대한 이 OTN 기사에는 Rails가 Oracle 데이터베이스에 액세스하도록 구성하는 다른 방법의 예가 있습니다.

언급URL : https://stackoverflow.com/questions/9808755/cannot-connect-my-rails-app-to-oracle

반응형