반응형
Mysql 사이트에 설명되어 있는 원인들은
- 커넥션이 끊어진 이후에 쿼리를 전송했을 때
- max_allowed_packet 을 초과하는 크기의 쿼리를 전송했을 때
- wait_timeout 을 초과하여 커넥션이 끊어진 경우
- 잘못된 쿼리를 지속적으로 전송하여 서버가 차단한 경우
등을 설명하고 있으나..
나의 경우에는 PHP로 짠 서비스 대몬에서 Mysql server has gone awa 문제가 발생하였고,
몇번의 쿼리를 지속적으로 전송하다 보면 해당 에러가 사라지는 현상이 반복되었다.
mysql_connect() 로 Mysql 서버에 접속할 때, new_link flag을 true로 설정하여 이 문제를 해결하였다.
기존 : mysql_connect($SERVER, $USR, $PWD);
수정: mysql_connect($SERVER, $USR, $PWD, true);
** resource mysql_connect ([ string $server [, string $username [, string $password [, bool $new_link [, int $client_flags ]]]]] )
기존의 리소스를 재활용하지 않고, 새로운 커넥션을 강제로 사용하도록 한 것인데..
아마 mysql_connect()와 mysql_close()를 반복적으로 사용하는 스크립트에서, mysql_close() 이후 정상적으로 리소스를 반환하지 않은 탓인 것 같다.
반응형