Linux에서 oracle 데이터베이스에 대한 odbc 연결을 설정하려고 합니다. 루트로 로그인하면 작동합니다. 내 루트 구성 파일은 다음과 같습니다.
more ~/.profile
export ODBCINI=/etc/unixODBC/odbc.ini
export ODBCSYSINI=/etc/unixODBC
그런데 일반 사용자로 로그인하면 odbc 접속이 되지 않습니다. 다음 오류가 발생합니다.
[RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
여기에 무엇이 문제인지는 잘 모르겠지만 다른 사용자에게 루트 프로필을 제공하면 내 문제가 해결될 수도 있겠다고 생각했습니다. 다른 모든 사용자에게 루트 프로필을 노출하려면 어떻게 해야 합니까? 여기서 무슨 일이 일어나고 있는지 아시나요?
추가 정보:
이것은 다음과 같은 내 tnsnames.ora 파일입니다.
Data =
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE = off)
(FAILOVER = ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = server1.example.com )(PORT = 1521))
)
(CONNECT_DATA =
(service_name = Data)
)
)
odbc.ini의 내용은 다음과 같습니다.
[Data]
Driver=Oracle
Description=Test
Trace=Yes
ServerName=//server1.example.com:1521/
Database=test
이것은 ondbcinst.ini입니다.
[Oracle]
Description = Oracle ODBC Connection
Driver = /opt/oclient/instantclient_12_1/libsqora.so.12.1
Setup =
FileUsage =
답변1
먼저 환경 변수 문제인지 확인하세요.
애플리케이션을 호출하기 전에 이 라인을 수동으로 실행하십시오. 애플리케이션은 명령줄에서 호출되어야 합니다.
export ODBCINI=/etc/unixODBC/odbc.ini
export ODBCSYSINI=/etc/unixODBC
작동하는 경우 시스템 전체 /etc/profile
파일에 다음 줄을 추가할 수 있습니다. 사용자를 강제로 로그아웃시킨 후 다시 시도하십시오.
답변2
연결할 데이터베이스가 있으면 다음을 수행할 수 있습니다.
내보내기TWO_TASK=db_SID
/etc/profile에 넣으면 작업이 완료됩니다.