Apache를 사용하여 Redhat 7 Linux 웹 서버에 "Create"라는 페이지를 배포하려고 합니다. 내 페이지에 액세스하려고 하면 오류 로그에 다음과 같은 오류 메시지가 표시됩니다.
[cgi:error] [pid 23367:tid 3936258880] [client 142.139.205.16:60557] AH01215: Schema .myuser@mydb . Password : /my/directory/cgi-bin/Create - Error while trying to retrieve text for error ORA-12154
온라인에서 찾아봤지만 이 오류에 대한 정보를 찾을 수 없습니다. 이 오류가 무엇을 의미하는지 올바른 방향으로 알려줄 수 있는 사람이 있나요?
답변1
이는 단일 오류 메시지가 아닌 소프트웨어 스택 내에서 발생하는 오류와 스택에서 빠져나올 때 오류 메시지에 기여하는 모든 계층으로 인해 발생하는 조합으로 보입니다.
"스키마"와 "암호"라는 단어는 함께 스크립트가 데이터베이스에 연결을 시도하고 있음을 나타냅니다.
메시지의 끝은 입니다 Error while trying to retrieve text for error ORA-12154
. ORA-nnnnn은 Oracle 데이터베이스 또는 해당 드라이버의 오류 코드에 대한 표준 형식입니다. 따라서 스크립트는 mydb
사용자/스키마 이름 및 비밀번호를 사용하여 mypass
서비스 이름으로 Oracle 데이터베이스에 연결을 시도 mypass
하고 오류 ORA-12154가 발생한 후 어떤 이유로 해당 오류 메시지 텍스트를 검색하지 못할 수 있습니다.
그런데 ORA-12154는 무엇을 의미합니까? Google이 구출해 드립니다!
오류 메시지의 전체 영어 텍스트는 다음과 같습니다.
ORA-12154: TNS:could not resolve the connect identifier specified
스크립트가 사용하는 데이터베이스 클라이언트/드라이버가 데이터베이스에 액세스하는 방법을 모르는 것 같습니다 mydb
.
데이터베이스 연결을 위한 네트워크 연결 매개 변수를 정의하는 파일이 있는 경우 스크립트에서 사용하는 데이터베이스 클라이언트/드라이버가 실제로 파일을 찾을 수 있도록 tnsnames.ora
스크립트가 올바른 ORACLE_HOME
및 기타 필수 Oracle 관련 환경 변수를 가져오는지 확인해야 합니다. tnsnames.ora
. 그런 다음 파일에 언급된 모든 호스트 이름/IP 주소/포트가 올바른지, 모든 호스트 이름을 확인할 수 있는지 확인하세요.
CGI 스크립트가 chroot 환경에서 실행되는 경우 /etc/resolv.conf
DNS 확인자 라이브러리에 액세스할 수 없거나 액세스할 수 없으므로 호스트 이름을 확인할 수 없습니다.
또는 Oracle 드라이버/클라이언트가 다른 것을 사용하도록 구성된 경우명명 방법(오라클 기술 용어) 데이터베이스 연결 매개 변수를 찾으려면 어떤 방법이 사용되었는지, 데이터베이스 서비스 이름에 대해 유효한 결과가 생성되었는지 확인해야 합니다 mydb
. 데이터베이스 관리자에게 문의해야 할 수도 있습니다. "내 클라이언트가 구성되었습니다.이와 같이, ORA-12154 오류 메시지가 나타납니다. 이 중 하나라도 문제가 있다고 생각하시나요? "
아, 그리고 이제 비밀번호를 데이터베이스에 공개적으로 게시했으므로 실제로 비밀번호를 변경하고 싶을 수도 있습니다.
답변2
내 문제를 해결하기 위해 내가 해야 할 일은 Oracle 구성 파일의 코드를 수정하여 /etc/profile.d/oracle.sh
모든 사람이 실행할 수 있도록 하는 것이었습니다. 특정 그룹의 사용자에 대해서만 실행되도록 코딩되어 있습니다.
모든 분들의 의견에 감사드립니다!