웹서버 DB서버가 다른 경우 접속 오류시 조치 방법
성능상의 이슈 또는 다른 이유로 웹서버와 db서버를 분리하여 사용하시는 경우가 있습니다.
클라우드에서는 흔히 이렇게들 사용을 하죠.
1개의 서버에 web(apache + php) 과 mysql을 같이 실행할때는 발생하지 않았던, 접속 오류 문제가 발생합니다.
웹서버와 db서버가 분리된 상황에서 오류 발생시 조치 방법입니다.
웹서버에서 mysql서버 접속 정보를 모른다면, 다음 파일에서 확인 가능합니다.
/그누보드가 설치된 경로/data/dbconfig.php
1. 웹서버-> db서버 접속 포트 확인
$ telnet db서버 3306
(telnet 이 설치안되어 있다면, sudo apt-get install telnet, yum install telnet 으로 설치)
웹서버에서 db서버로 3306 포트로 접속 안되는 경우
1-1) connection refuse 상황은 포트가 막히거나, db서버가 죽어있는 경우
해결방법1 : db서버가 살아있는지 확인 후, 서비스가 실행되지 않은 경우 mysqld 서비스 실행
해결방법2 : 방화벽이 막혀있는 경우라면, 방화벽에서 3306이나 웹서버 ip를 해제후 재시도
방화벽은 여러곳에 존재함으로 모두 체크해야함.
1-2) connection not allow remote xxxxx 형태의 메세지가 출력되는 경우
해결방법 : db서버에서 웹서버의 아이피 계정을 등록하지 않은 경우임으로,
mysql root예서 host 및 계정 정보를 등록함... host가 %이면, 모든 아이피에서 접속허용
(계정 정보를 변경했다면, mysql에서 flush privileges를 꼭 실행해야함.)
2. 1번은 정상이나, 여전히 안되는 경우
웹서버에서 mysql client를 설치
- sudo yum install mysql-client
- apt-get install mysql-client
db서버에 접속시도
$ mysql -h db서버아이피 -u db사용자계정 -p
2-1) 비밀번호를 입력후 패스워드가 틀리다면, 1-2)에서 비밀번호 설정이 잘못된 경우임으로, 비밀번호를 재설정
2-2) mysql > use dbname 실행시 오류가 난다면, 사용자계정에 db권한을 안준것임으로 추가함
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 2개