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로 접속해서 상황 연구할수 있을까요?
스카이로 컨텍 주세욧.. live:splitedragon
댓글이 안달리는데.. 스카이가 뭐에요..??
skype 미팅을 의미합니다.
DB 서버는 A,B 중 어느 곳에 있나요?
아니면 별도 서버인가요?
우선 첫 에러 부분부터 확인하셔서 하나씩 차근차근 오류를 잡으셔야 합니다.
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가 안되어서...관련 함수등이 인식이 안되면..아래쪽 라인에서 문제가 생길수 있습니다.
참고하셔서 하나씩 화인해보시기 바랍니다.
해보시다 안되시면..쪽지주세요.