![ODBC를 사용하여 OracleDB에 연결할 때 "[unixODBC][드라이버 관리자] 데이터 소스 이름을 찾을 수 없고 기본 드라이버가 지정되지 않았습니다."가 나타납니다.](https://linux55.com/image/55303/ODBC%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20OracleDB%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EB%95%8C%20%22%5BunixODBC%5D%5B%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84%20%EA%B4%80%EB%A6%AC%EC%9E%90%5D%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EC%86%8C%EC%8A%A4%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EA%B3%A0%20%EA%B8%B0%EB%B3%B8%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84%EA%B0%80%20%EC%A7%80%EC%A0%95%EB%90%98%EC%A7%80%20%EC%95%8A%EC%95%98%EC%8A%B5%EB%8B%88%EB%8B%A4.%22%EA%B0%80%20%EB%82%98%ED%83%80%EB%82%A9%EB%8B%88%EB%8B%A4..png)
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에 넣으면 작업이 완료됩니다.