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개
문의 드릴게요.
_DBHOST_ 값이 로컬호스트나요 아니면 public ip주소나요?
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
우선 첫 에러 부분부터 확인하셔서 하나씩 차근차근 오류를 잡으셔야 합니다.
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가 안되어서...관련 함수등이 인식이 안되면..아래쪽 라인에서 문제가 생길수 있습니다.
참고하셔서 하나씩 화인해보시기 바랍니다.
해보시다 안되시면..쪽지주세요.
답변에 대한 댓글 3개
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로 테스트 실행해봐도
접속은 잘되는데 저 부분에서 갑자기 에러가 발생하네요
원래 잘돌아가던거에요..
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 3개
===
// 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 사용했습니다)
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
010 9281 3369 <- 여기로 문자나 카톡 주시면 구글데스크톱이나 팀뷰어로 원격 가능합니다 ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
그니깐. include_once (_YEPACSCVT_DIR_.'common.php'); 이게 바로
include_once ('/var/www/html/xxx/common.php'); 나 같은 의미겠죠?
혹시, /var/www/html/xxx/common.php 에 대한 접근 권한 한번 살펴보세요.
파일에 대한 접근권한을 chmod 0777로 바꾸어 보세요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
/var/www/html/xxx/common.php
이 경로에 정말 파일이 있나요?
답변에 대한 댓글 1개
해당 파일에서 DBHOST를 localhost로 접속 하냐 127.0.0.1로 접속 하냐에 따라
오류 코드가 다르게 발생하고 있습니다
댓글을 작성하려면 로그인이 필요합니다.
mysql 버전차이가 있는지 확인하시고,
새 서버에서 다른 서버의 db에 접속이 가능하도록
ip로 열어야합니다.
답변에 대한 댓글 1개
B서버가 B서버의 DB 즉, 자신의 DB 연동이 안되고 있어서
A와 B연동이 안되고 있습니다.. ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
답변 감사합니다 문제는 해결했습니다
해당 오류는 부팅 시에만 발생하고 부팅이 끝난 이후엔 발생하지 않아
부팅 시 데몬이나 다른게 활성화 되기전이라 오류가 발생하는거였고
부팅이 끝나면 오류가 발생하지 않아 해당 오류가 문제가 아닌 것을 알았습니다
rc.loal에 sh로 common.php를 반복 실행하기 때문에 부팅시에만 오류가 발생하는 것은
오류가 아니였습니다
자동 전송 테스트까지 되다 안되던건 common.php의 문제가 아니라
자동전송.php에서 프라이머리키 값의 문제였네요..
해당 프라이머리키가 텅 빈 서버 상태에서 제가 테스트를 했기 때문에 수치가 낮았는데
기존 서버 데이터를 마이그레이션을 진행하니 사진이 25만장이 넘어
프리어머리키 값을 추가된 데이터에 맞춰줘야하는 문제였습니다