업무상 200M 정도의 SQL을 사용자 라이브러리로 가져와야 합니다
명령어
mysql> use user Database changed mysql> source /tmp/user.sql
실행 시 가져오기 과정에서 MySQL 서버가 사라졌습니다 오류가 발생하고 데이터 가져오기가 진행되지 않습니다. 실패한.
오류 메시지는 다음과 같습니다.
ERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 11Current database: userERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 12Current database: userERROR 2006 (HY000): MySQL server has gone awayERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 13Current database: user
처음에는 시간 초과로 인해 발생한 것으로 생각하여 connect_timeout 및 wait_timeout 값을 늘렸습니다.
재실행 후에도 문제가 남아있습니다.
해결책:
정보를 확인한 후 max_allowed_packet 매개변수를 찾았습니다.
공식적인 설명은 클라이언트에서 대용량 데이터를 전송할 때 시스템이 더 많은 확장자를 할당할 수 있도록 max_allowed_packet 매개변수를 적절하게 늘리는 것입니다. 처리할 메모리입니다.
mysql max_allowed_packet
mysql> show global variables like 'max_allowed_packet'; +--------------------+---------+| Variable_name | Value | +--------------------+---------+| max_allowed_packet | 4194304 | +--------------------+---------+
값을 확인해보면 4M인 것을 알 수 있고, 256M(1024*1024*256)
mysql> set global max_allowed_packet=268435456; Query OK, 0 rows affected (0.00 sec)mysql> show global variables like 'max_allowed_packet'; +--------------------+-----------+| Variable_name | Value | +--------------------+-----------+| max_allowed_packet | 268435456 | +--------------------+-----------+1 row in set (0.00 sec)
으로 증가시킨다. 수정 후 import를 실행하면 모든 것이 정상이다. 문제가 해결되었습니다.
참고:
max_allowed_packet 값을 수정하려면 set global 명령을 사용하세요. mysql을 다시 시작한 후에는 유효하지 않으며 기본값으로 복원됩니다.
다시 시작한 후 복원하지 않으려면 my.cnf 파일을 열고 max_allowed_packet = 256M을 추가하면 됩니다.
이 기사에서는 mysql이 대량의 데이터를 가져올 때 MySQL 서버가 사라지는 문제에 대한 해결책을 설명합니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참고하세요.
관련 추천:
mysql 연결이 중단될 때 자동으로 다시 연결하는 방법
php HTML 엔터티 번호 및 비ASCII 문자열을 변환하는 클래스
위 내용은 mysql이 대량의 데이터를 가져올 때 MySQL 서버가 사라지는 문제에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!