문제

내가 사용하여 주탑(python 프레임)을 통하여 간단한 웹 응용 프로그램이지만,그것은 보인다에서 죽을 시간으로,이것에서 오류 로그: (2006, 'MySQL server has gone away')

나는 조금의 검사하며,검사를 하나라도 통과하다고 보았기 때문이의 연결을 수행하지 않고 있었습니다.이 문제가되지 않기 때문에,하지만 이 sqlalchemy.pool_recycle 설정파일에서 앞에 자동으로 계속 그것은 살아 있습니다.기본이었다 3600, 지만,나는 전화를 걸 그것은 다시 1800 이 때문에 문제입니다.조금 도움이되었지만, 3600 미세에 따라 문서.에 오류가 계속 일어나는 반 정기적으로 한다.나는 원하지 않는 낮은 그것을 너무 많이하지만 DOS 내 자신의 데이터베이스:).

어쩌면에서 뭔가를 내 MySQL 설정은 구피?가 확실하지 않는다.

다른 관련 세부사항:

  Python 2.5
  Pylons: 0.9.6.2 (w/ sql_alchemy)
  MySQL: 5.0.51
도움이 되었습니까?

해결책

나는 생각은 그것을 해결했습니다.그것은 최고의 안드로이드 애플 리케이 있었는 간단하 config 오류가 있습니다.내 ini 파일에 읽기:

sqlalchemy.default.url = [connection string here]
sqlalchemy.pool_recycle = 1800

문제는 나 environment.py 파일에 선언되는 엔진에만 지도 열쇠를 가진 접두사: sqlalchemy.default 그래서 pool_recycle 무시되었습니다.

이 솔루션은 단순히 변화의 두 번째 라인에서 ini:

sqlalchemy.default.pool_recycle = 1800

다른 팁

를 확인할 수 있습 MySQL 의 시간 제한 변수:

show variables like '%timeout%';

당신은 아마 관심에서 wait_timeout (덜하지만 가능: interactive_timeout).에 Debian and Ubuntu,기본값은 28800(MySQL 죽인다는 연결한 후 8 시간),그러나 어쩌면에 대한 기본 플랫폼은 다른 또는 누구든지 administrates 서버가 구성되어 차별화된 방식으로 행동합니다.

AFAICT, pool_recycle 지 않는 실제로 유지 연결이 살아있다,그것은 그들이 만료되기 전에 자체 MySQL 죽입니다.나는 익숙하지 않은 철탑이지만,경우를 일으키는 연결을 일시적으로 수행 SELECT 1; 옵션이 유지됩니다 그들이 살아에서 비용이 기본적으로 서버 부하를 최소한의 네트워크 트래픽이 있습니다.마지막으로 생각:당신은 어떻게든 관리용 연결하는 철탑을 생각하는 그것이 만료되었?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top