레일 앱을 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
'programing' 카테고리의 다른 글
Larlabel로 반환되는 외부 URL로 리디렉션 (0) | 2023.10.25 |
---|---|
PySpark DataFrame Aggregate의 열 이름 변경 (0) | 2023.10.25 |
노드 4에서 ES6 클래스를 제대로 내보내는 방법은? (0) | 2023.10.25 |
리소스 정의의 매개 변수 이름에 "at" 기호를 지정합니다. (0) | 2023.10.25 |
모듈이 호환되지 않는 버전의 Kotlin으로 컴파일되었습니다.메타데이터의 이진 버전은 1.5.1이고 예상 버전은 1.1.15입니다. (0) | 2023.10.25 |