2017-02-15 1 views
2

django 1.10, python3.4, mysqlclient, mysql5.5에서 웹 사이트를 실행 중입니다.생산 환경에서 Mysql이 자주 사라졌습니다 (오류 2006).

다양한 작업 (예 : 메일 보내기, 테이블 업데이트)을 백그라운드에서 여러 차례 실행하는 여러 관리 명령이 있습니다. 최근에, 나는 많은 Mysql이 사라진 것을 보았습니다 (Error 2006).

connection_timeout을 max_connection보다 크게 변경하려고했습니다. 대부분의 경우 오류 2006이 실행중인 함수에 대해 중지 된 문제의 작은 부분을 해결했지만 다른 경우는 그대로이며 자주 오류 2006이 표시됩니다.

경우에 따라 django.db .connection.close() 함수를 실행하거나 try - except 루프에 넣기 전에. 그 장소에서이 에러는 더 이상 발생하지 않지만 모든 함수에이 try-except 루프를 넣을 수는 없습니다.

Mysql이이 반복 오류의 근본 원인은 무엇입니까? 다른 솔루션은 무엇이며 가장 좋은 솔루션은 무엇입니까? 그럼 코드를 많이 변경할 필요가 없습니다.

다른 변수 :

우리는 1.10 장고 1.7에서 업그레이드하고 최근 mysqlclient 패키지를 업데이트하고, 문제는 아마 후 떠올랐다.

Google 사이트의 트래픽도 여러 번 증가했습니다. 그게 방아쇠가 될 수 있습니까?

답변

0

다른 곳에서 볼 수 있듯이 쿼리가 너무 길거나 서버가 비활성으로 인해 연결을 닫을 수 있습니다. 상황에 따라 크게 달라 지지만 거래의 중간에 있지 않으면 (두 번째 가능성을 무시할 것임) Hook available for automatic retry after deadlock in django and mysql setup

과 비슷한 것을 적용 할 수 있습니다.
관련 문제