CI 묻고 답하기

제목 간헐적 mysqli::real_connect(): (HY000/2002): Connection timed out 현상
카테고리 CI 2, 3
글쓴이 이범준 작성시각 2017/04/13 10:01:22
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 18808   RSS

:: Codeigniter

3.1.4

 

:: DB 서버

CentOS 7

MariaDB 10.1.18

 

:: 웹 서버

CentOS 7

Nginx 1.10.1

PHP 7.0.11

 

웹 서버와 DB 서버는 물리적으로 분리되어 있습니다.

간헐적으로 멈춤 현상이 발생하길래 codeigniter 에서 지원하는 log 기능을 켜 놓아 보았습니다.

 

ERROR - 2017-04-13 10:07:21 --> Severity: Warning --> mysqli::real_connect(): (HY000/2002): Connection timed out path/system/database/drivers/mysqli/mysqli_driver.php 201

ERROR - 2017-04-13 10:07:21 --> Unable to connect to the database

 

위 에러 2개가 찍혔더군요.

웹 서버 문제인가 싶어 static 파일을 접속 해 보았는데 정상적으로 잘 접속 되더군요.

DB 쪽 뭔가가 문제라는 건데 처음 겪는 현상이라 어떻게 해결해야 할지 모르겠습니다.

DB 서버쪽 에러 로그도 위와 동일하게 남았고 다른 에러 로그는 없었습니다.

슬로우 쿼리 로그도 남겨 보았는데 문제는 없었습니다.

DB 서버가 아예 죽게되면  Connection refused로 로그가 남을텐데 Connection timed out가 남은거 보니까 뭔가를 연결을 시도하거나 쿼리를 처리하다가 타임아웃에 걸려 터진거 같은데 원인을 모르겠습니다.

 

혹시 비슷한 현상 겪으신 분 있으시면 조언좀 부탁드립니다.

 다음글 PHPExcel 로드에 문의 드립니다. (2)
 이전글 세그먼트값을 반환하는 함수를 변수에 사용할순 없나요? (7)

댓글

한대승(불의회상) / 2017/04/13 10:19:59 / 추천 0
config/database.php 파일을 열어서 pconnect 항목이 true로 되어 있는지 확인해 보세요.
이범준 / 2017/04/13 10:26:30 / 추천 0
@한대승(불의회상) 해당 부분 FALSE로 되어 있습니다.
변종원(웅파) / 2017/04/13 10:26:57 / 추천 0

db 컨넥션 수도 적절히 조정해보시구요.

db와 웹서버는 내부아이피로 사용중이신가요?

이범준 / 2017/04/13 10:31:09 / 추천 0

@변종원(웅파) 예 내부 아이피로 사용하고 있습니다.

말씀대로 DB 커넥션을 방금 늘렸습니다.

변종원(웅파) / 2017/04/13 10:33:25 / 추천 0
이범준/ mariaDB 모니터링을 해보셔야겠네요. ^^
이범준 / 2017/04/13 10:35:02 / 추천 0

@변종원(웅파) 안그래도 클라 전화받고 계속 모니터링 중입니다. ㅠㅠ

답변 감사합니다.

kaido / 2017/04/13 10:40:47 / 추천 0

트래픽 오버 하고 있진 않은지 확인 필요할듯 하네요.

접속 로그 보시고 수상한 접속 이력이 있는지 확인해 보세요.

요즘 봇으로 돌려서 사이트 접근 하는 거 많더라구요.

이범준 / 2017/04/13 10:44:12 / 추천 0

@kaido

아 그럴수도 있겠네요.

바로 확인 해 보아야 겠습니다.

감사합니다.