XE Tips 는 제가 XE 공홈에 쓴 XE 관련 유용한 팁들입니다. 기능개선은 공홈에 안 적어둔 XE 유용 개선팁들입니다.
유용정보는 외부 검색을 통해 알아낸 소스등을 기재해둔 곳입니다.
버그 신고내역들은 XE 사용하다가 발견한 버그 패치방법들로, Core Issue 에 기록해뒀기에 XE 에 적용이 되었을 가능성이 있겠죠
제가 쓴 글들에 대해 퍼가실때는 꼭 출처를남겨주시고.. (다만 플래시뷰 기반이기에 퍼가기는조금 힘들 수 있겠죠 ^^;)
타회원의 글들도 적혀있는 출처를 같이 꼭 기재해주세요
출처 | 고수군 |
---|---|
출처URL | http://www.xpressengine.com/tip/18342575 |
** 상기 출처의 글을, sejin7940 이 부분적으로 재정리하여 기재하였습니다.
1. MySQL server has gone away 에러의 발생 원인으로
(1) mysql 사이트에 설명되어 있는 원인 으로는
1) 커넥션이 끊어진 이후에 쿼리를 전송했을 때
2) max_allowed_packet 을 초과하는 크기의 쿼리를 전송했을때
3) wait_timeout 을 초과하여 커넥션이 끊어진 경우
4) 잘못된 쿼리를 지속적으로 전송하여 서버가 차단된 경우
이로 인해서 DB 가 꼬이기 시작합니다.
특히 File DB쪽이 심하게 꼬이고.. 연관 Document 도 같이 꼬이기 시작합니다.
(2) XE 에서 상기 에러가 나타나는 경우는.. 대부분 초기 설치자는 문제가 없지만,
1) Zeroboard4 를 운영하다가 DB 이전시 대용량 파일이라던지,
2) 어떠한 특수경우의 게시물로 인하여 에러가 발생할 수도 있습니다.
3) 또는 호스팅 업체의 서버 자체의 셋팅이 너무 기본적이여서 그럴수도 있습니다.
2. 상기 에러의 해결방법으로...
(1) XE 소스 수정 (외부 서버호스팅을 이용하여 mysql 설정 변경 불가한 경우. XE 업데이트시마다 수정해줘야함)
1) 수정파일위치 : ./classes/db/DBMysql.class.php
2) 원본코드 : 80번째 줄 정도에서
$this->fd = @mysql_connect($this->hostname, $this->userid, $this->password); 부분을 찾아서
3) 수정코드 : $this->fd = @mysql_connect($this->hostname, $this->userid, $this->password, true);
(2) Mysql 설정을 직접 변경할 수 있는 분이라면 (XE소스 변경 안 해도 됨)
- 이 페이지를 참조해서 해결하면 됨 - http://blog.naver.com/icecom/80054230974