작성
·
638
0
ORA-12541 에러가 해결되지 않아 질문 드립니다.
현재 instantclient 19.15 버전 사용, Oracle 18c 버전 사용 환경입니다.
오류
> 위의 사진과 같이 오류가 출력이 됩니다.
2. listener.ora, tnsnames.ora 설정
> host 부분에 ip, localhost, pc name 전부 시도했지만 1번과 같은 오류가 출력이 되었습니다.
환경 변수 편집
> 기존 18.0.0 설정을 instantclient경로로 변경을 하면 sqlplus, lsnrctl status명령어가 실행을 할 수 없어 instant 경로를 하나 더 추가 하였습니다.
lsnrctl status 실행 결과
> 위의 사진과 같이 정상적으로 READY상태임에도 불구하고 1번 사진과 같이 똑같은 오류가 출력이 됩니다.
서비스 실행 상태
> 모든 oracle 서비스에 대해서 실행 상태임에도 불구하고 오류는 계속 출력 되고 있습니다.
코드
<?php
// Connects to the XE service (i.e. database) on the "localhost" machine
$conn = oci_connect('c##kim', '1234', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT user FROM dual');
oci_execute($stid);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
현재 작성되어 있는 코드입니다. 커뮤니티에 있는 오류 해결 방법에 대해서 모두 시도해보았는데 진전이 없었습니다. 답변 부탁 드리겠습니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. ORA-12541 오류는 TNS listener가 원격 컴퓨터와 통신을 할 수 없을 때 발생하는 오류입니다. 오류 메시지를 보니 TNS listener가 서비스 요청을 핸들링하지 못하고 있을 수 있습니다.
먼저 listener.ora 파일과 tnsnames.ora 파일의 설정이 정확히 되어 있는지 확인해보세요. host 부분에는 컴퓨터의 IP 주소나 호스트 이름이 정확히 설정되어야 합니다. 설정이 정확하더라도 문제가 발생한다면, 방화벽 또는 네트워크 설정에서 문제가 발생할 수 있습니다.
또한, 서비스 실행 상태에서 정상적으로 Oracle 서비스가 실행 중인지 확인해보세요. 모든 Oracle 서비스가 실행 중임에도 오류가 계속해서 발생한다면, 시스템에 다른 문제가 있을 수 있습니다.
코드를 보면 oci_connect() 함수를 사용하여 데이터베이스에 연결하려고 하는데, 오류 발생 시 오류 메시지를 출력하도록 하고 있습니다. 오류 메시지를 확인하여 더 자세한 원인을 파악할 수 있습니다.
더 자세한 정보를 제공해주시면 더 도움을 드릴 수 있을 것 같아요.