DB연동 문제가 발생하는데 원인을 모르겠습니다

DB연동 문제가 발생하는데 원인을 모르겠습니다

QA

DB연동 문제가 발생하는데 원인을 모르겠습니다

본문

A 서버에서 사진을 찍으면 다른 B 서버에서 사진을 가져가는 프로그램이 있습니다

A 서버를 교체하였는데 분명 A 서버 교체 전 A 서버 종료 후 A-1 서버로 테스트시 정상 작동을 하였습니다

 

현재 A-1서버로 완벽하게 교체 후 사진 전송이 안되길래 에러 로그를 확인해봤더니

B서버 common에서 이러한 에러 코드가 발생하는 것을 확인했습니다

localhost rc.local: PHP Warning:  mysqli::__construct(): (HY000/2002): No such file or directory in /var/www/html/xxx/common.php on line 39

 

그래서 localhost를 못가져와서 그런가 싶어 127.0.0.1로 변경하였더니 에러코드가

localhost rc.local: PHP Warning:  mysqli::__construct(): (HY000/2002): Connection refused in /var/www/html/xxx/common.php on line 39

 

이렇게 발생하고 있습니다

common에서 에러가 발생하는 코드를 올려드리겠습니다.. ㅠㅠ

고수님들 확인 부탁드리겠습니다..

 

define('_DBHOST_','localhost'); //127.0.0.1로 변경 시 다른 에러 발생
define('_DBUSER_','root');
define('_DBPASS_','password');
define('_DBNAME_','name');

// MSSQL DB 정보 설정 ( Local Network )
// define('_MSDBHOST_',"192.168.bb.bb");
define('_MSDBHOST_',"bbbb");
define('_MSDBUSER_','bbbb');
define('_MSDBPASS_','bbbb');
define('_MSDBNAME_','bbbb');

// MSSQL(ODBC) DB 정보 설정 ( Local Network )
//define('_MSDBHOST2_','cccc');
define('_MSDBHOST2_','cccc');
define('_MSDBUSER2_','cccc');
define('_MSDBPASS2_','cccc');
define('_MSDBNAME2_','cccc');

// Y MSSQL DB 정보 설정 ( Local Network )
//define('_YMSDBHOST_',"115.137.bb.bb");
define('_YMSDBHOST_',"bbbb");
define('_YMSDBUSER_','bbbb');
define('_YMSDBPASS_','bbbb');
define('_YMSDBNAME_','bbbb');

 

define('_DATA_','ps_data');
define('_MEMBER_','ps_member');
define('_MEMBER_LOG_','ps_member_log');
define('_PIXELSPACING_','ps_pixelspacing');
define('_INFO_','ps_info');

/******************************************************************************************************************///    Mysql
function fncDbOpen() {            // DB Connect
    global $mydb;
    $mydb = new mysqli(_DBHOST_,_DBUSER_,_DBPASS_,_DBNAME_);  //39에러 발생 구간
    if (mysqli_connect_errno()) printf($mydb->error);
}

function fncDbClose() {            // DB Disconnect
    global $mydb;
    @$mydb->close();
}

function fncDbQuery($query) {    // Query
    global $mydb;
    $rs = $mydb->query($query);
    if (mysqli_connect_errno()) printf($mydb->error);
    return $rs;
}

function fncDbRow1($query) {    // One Row Query
    $rs = fncDbQuery($query);
    $data = @$rs->fetch_assoc();
    $rs->free();
    return (is_array($data)) ? array_map('stripslashes',$data) : stripslashes($data);
}

function fncDbData1($query) {    // One Data Query
    $rs = fncDbQuery($query);
    $count = @$rs->fetch_row();
    $rs->free();
    return (is_array($count[0])) ? array_map('stripslashes',$count[0]) : stripslashes($count[0]);
}

function fncDbExQuery($query) {    // Insert,Delete,Update Query
    global $mydb;
    $rs = $mydb->query($query);
    if (mysqli_connect_errno()) printf($mydb->error);
}

 

위 코드에서 아래 부분은 다른 서버 연동부분이라 잘라서 올렸습니다..

 

mysql 같은 경우엔 phpmyadmin 접속도 잘되고 실시간 업데이트도 잘되고 있습니다

putty에서 B 서버 접속 후

mysql -h 127.0.0.1 -P 3306 -u root -p <- 접속 가능

mysql -h localhost -P 3306 -u root -p <- 접속 가능

mysql -h 127.0.0.1 -u root -p <- 접속 가능

mysql -h localhost -u root -p <- 접속 가능

 

 

참고로 연동 프로그램에서 오류가 발생하는 구간은

include_once (_YEPACSCVT_DIR_.'common.php');

 

위 명령어 인식을 못해서 발생하고 있는것 같아요..

이 질문에 댓글 쓰기 :

답변 11

단순 하드웨어 교체가 아니라면

구조까지 동일하게 맞춰야 합니다.

 

추가로 버전도 채크해보시고

라이브러리까지 까지도 확인해보세요.

mysql 버전차이가 있는지 확인하시고,

새 서버에서 다른 서버의 db에 접속이 가능하도록

ip로 열어야합니다.

/var/www/html/xxx/common.php

이 경로에 정말 파일이 있나요?

그니깐. include_once (_YEPACSCVT_DIR_.'common.php'); 이게 바로

include_once ('/var/www/html/xxx/common.php'); 나 같은 의미겠죠?

혹시, /var/www/html/xxx/common.php 에 대한 접근 권한 한번 살펴보세요.

파일에 대한 접근권한을 chmod 0777로 바꾸어 보세요

내 쪽에서 임시 putty로 접속해서 상황 연구할수 있을까요?

네.. 가능은한데 내부 IP 접속이라 원격으로 보셔야 할텐데 가능할까요..??

*** 개인정보보호를 위한 휴대폰번호 노출방지 *** <- 여기로 문자나 카톡 주시면 구글데스크톱이나 팀뷰어로 원격 가능합니다 ㅠㅠ

댓글이 안달리는데.. 스카이가 뭐에요..??

DB 서버는 A,B 중 어느 곳에 있나요?

아니면 별도 서버인가요?

전체 시스템 구성 정보가 필요합니다.
===
// MSSQL(ODBC) DB 정보 설정 ( Local Network )
//define('_MSDBHOST2_','cccc');
define('_MSDBHOST2_','cccc');
===
를 보면 mssql도 사용하는 듯하고...


===
B서버 common에서 이러한 에러 코드가 발생하는 것을 확인했습니다

localhost rc.local: PHP Warning:  mysqli::__construct(): (HY000/2002): No such file or directory in /var/www/html/xxx/common.php on line 39
 

그래서 localhost를 못가져와서 그런가 싶어 127.0.0.1로 변경하였더니 에러코드가

localhost rc.local: PHP Warning:  mysqli::__construct(): (HY000/2002): Connection refused in /var/www/html/xxx/common.php on line 39
===
"... refused in ...."
이건 1270.0.1에는 DB 서버가 없거나 실행이 안 되어 있어서 나는 에러 입니다.
바꾸전 호스는 뭔지 궁금하네요.
common.php 내용도 올려 보세요.

답변 감사합니다 문제 해결 했습니다
부팅 시에만 인식을 못하고 부팅이 끝난 다음엔 인식을 잘하는거라
common.php에 문제가 없는 것을 알았습니다

자동전송 php의 문제였네요.. (아 참고로 바꾸기전에도 이후에도 localhost 사용했습니다)

우선 첫 에러 부분부터 확인하셔서 하나씩 차근차근 오류를 잡으셔야 합니다.

 

localhost rc.local: PHP Warning:  mysqli::__construct(): (HY000/2002): No such file or directory in /var/www/html/xxx/common.php on line 39

 

이렇게보시면 common.php 39 라인에 아마 include된 파일이 없거나 찾을수 없는 현상입니다.

common.php의 39라인을 확인하셔서 어떤 파일인지 ..해당경로에 파일이 존제 하는지 부터 확인 해보시기 바랍니다.

 

만일 관련된 라이브러리가 아래쪽 라인에서 필요한데.. 정확하게 include가 안되어서...관련 함수등이 인식이 안되면..아래쪽 라인에서 문제가 생길수 있습니다.

 

참고하셔서 하나씩 화인해보시기 바랍니다.

해보시다 안되시면..쪽지주세요.

*///    Mysql
function fncDbOpen() {            // DB Connect
    global $mydb;
    $mydb = new mysqli(_DBHOST_,_DBUSER_,_DBPASS_,_DBNAME_);  //39에러 발생 구간
    if (mysqli_connect_errno()) printf($mydb->error);
}

common.php에서 mysqli 부분에서 오류가 발생합니다
DB 연동에 문제가 있나 싶어 DB 접속도 해보고 다른 php로 테스트 실행해봐도
접속은 잘되는데 저 부분에서 갑자기 에러가 발생하네요

원래 잘돌아가던거에요..

설명드렸듯이 에러원인부터 해결을 하셔야합니다. 잘돌아간다고 해서.. 갑자기 안돌아가면 원인이 있는거지요. 이부분 에러부터 확인을 하신후 하나씩 차근차근 접근해보시면 해결하실수 있을겁니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,119 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT