인프런 커뮤니티 질문&답변

Destiny님의 프로필 이미지
Destiny

작성한 질문수

모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1

ORACLE 설치 및 PHP 연동

ORA-12514

작성

·

638

0

ORA-12541 에러가 해결되지 않아 질문 드립니다.

현재 instantclient 19.15 버전 사용, Oracle 18c 버전 사용 환경입니다.

 

  1. 오류

    1.png> 위의 사진과 같이 오류가 출력이 됩니다.


2. listener.ora, tnsnames.ora 설정

2.png3.png> host 부분에 ip, localhost, pc name 전부 시도했지만 1번과 같은 오류가 출력이 되었습니다.


  1. 환경 변수 편집

    4.png> 기존 18.0.0 설정을 instantclient경로로 변경을 하면 sqlplus, lsnrctl status명령어가 실행을 할 수 없어 instant 경로를 하나 더 추가 하였습니다.


  2. lsnrctl status 실행 결과

    5.png> 위의 사진과 같이 정상적으로 READY상태임에도 불구하고 1번 사진과 같이 똑같은 오류가 출력이 됩니다.


  1. 서비스 실행 상태

    6.png> 모든 oracle 서비스에 대해서 실행 상태임에도 불구하고 오류는 계속 출력 되고 있습니다.


     

  2. 코드

    <?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) : "&nbsp;") . "</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() 함수를 사용하여 데이터베이스에 연결하려고 하는데, 오류 발생 시 오류 메시지를 출력하도록 하고 있습니다. 오류 메시지를 확인하여 더 자세한 원인을 파악할 수 있습니다.

더 자세한 정보를 제공해주시면 더 도움을 드릴 수 있을 것 같아요.

Destiny님의 프로필 이미지
Destiny

작성한 질문수

질문하기