programing

mysqli가 영속적인 접속을 재접속할 때 "서버가 사라졌습니다"라는 경고를 수정하려면 어떻게 해야 합니까?

javaba 2022. 10. 6. 21:16
반응형

mysqli가 영속적인 접속을 재접속할 때 "서버가 사라졌습니다"라는 경고를 수정하려면 어떻게 해야 합니까?

(연결 시간 오버헤드를 피하기 위해) 영구 연결을 사용하여 데이터베이스에 연결할 때 PHP는 "서버가 사라졌습니다"라고 경고합니다.사용하는 코드는 다음과 같습니다.

$db = new mysqli("p:10.0.0.1", "user", "pass");

다음 질문을 살펴보았습니다.

그리고 다른 많은 것들도.어느 것도 이 문제와 완전히 동일하지 않습니다.오래된 스크립트 또는 쿼리가 있거나 이 오류가 발생했을 때 자동으로 재접속하는 방법을 묻습니다.이 경우 실행 중인 스크립트가 길지 않고(접속 풀), 오류가 아닙니다.스크립트는 정상적으로 동작하고 있는 것 같습니다.이러한 경고만 출력됩니다.PHP의 연결 풀에 시간 초과된 연결만 포함되어 있습니다.

이전 서버에서는 이 경고를 거의 볼 수 없었습니다.실제로 몇 분 후에 이 경고나 오류(어느 쪽인지 기억나지 않음)가 자주 나타나는 페이지 행잉(현재 해결)무슨 문제인지는 몰랐지만 관련이 있는 것 같아요.

서버에는 수백 개의 소규모 애플리케이션이 실행 중이기 때문에 모든 스크립트를 변경할 필요가 없습니다(각 애플리케이션은 스탠드아론이며 독자적인 데이터베이스 credential을 가지고 있습니다).의 추가@각 접속의 전면에는, 이 에러 뿐만이 아니라, 모든 에러를 억제해, 근본적인 문제를 해결하는 것이 아니라 회피책이라고 하는 부작용이 있습니다.

이것은 PHP의 버그에 불과합니까, 아니면 그것을 해결하는 설정이 있습니까?MariaDB 측에서는 타임아웃 시간을 연장할 것을 권장하는 사람이 있었습니다만, 이 경우 문제를 근본적으로 해결하는 대신 경고가 표시되는 빈도가 줄어듭니다.PHP는 풀을 수시로 체크할 수 있습니까, 아니면 풀에서 오래된 연결을 폐기할 수 있습니까?

문서 페이지(1, 2)도 확인했습니다만, 문서나 코멘트에 이 문제가 기재되어 있습니다.

언급URL : https://stackoverflow.com/questions/55554370/how-to-fix-the-server-has-gone-away-warning-when-mysqli-reconnects-a-persisten

반응형