MySQL 데이터베이스에 수백 개의 레코드를 삽입하는 등의 대량 작업을 수행할 때 다음이 발생할 수 있습니다. 다음 오류가 발생합니다.
[PDOException] SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
이 오류는 일반적으로 일정 기간 동안 활동이 없으면 MySQL 서버가 연결을 끊는 시간 초과 문제로 인해 발생합니다. 이 문제를 해결하려면 다음 두 가지 기본 설정을 조정하는 데 집중하세요.
wait_timeout 설정은 MySQL이 비활성 연결을 종료하기 전에 기다리는 기간(초)을 결정합니다. 기본적으로 이 값은 공유 호스팅 환경에서 상대적으로 낮은 30초로 설정됩니다.
wait_timeout을 늘리려면 작업 시작 시 다음 쿼리를 실행하세요.
SET session wait_timeout=28800;
이것은 명령은 wait_timeout을 28800초(약 8시간)로 설정합니다.
어떤 경우에는 Interactive_timeout 설정을 조정해야 할 수도 있습니다. 이 설정은 MySQL이 대화형 연결을 종료하기 전의 시간(초)을 지정합니다.
interactive_timeout을 수정하려면 wait_timeout을 조정한 후 다음 쿼리를 실행합니다.
SET session interactive_timeout=28800;
확인하려면 설정이 성공적으로 수정되었으면 변경 전후에 다음 쿼리를 실행할 수 있습니다.
<code class="php">$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);</code>
시간 초과 설정을 늘리면 즉각적인 문제를 해결할 수 있지만, 다음 사항을 고려하십시오.
위 내용은 대량 작업 중에 \"일반 오류: 2006 MySQL 서버가 사라졌습니다\"를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!