명령줄을 가져오는 동안 "MySQL 서버가 사라졌습니다" 오류가 계속 발생합니다.

명령줄을 가져오는 동안 "MySQL 서버가 사라졌습니다" 오류가 계속 발생합니다.

mysqldump를 사용하여 다른 서버에서 생성된 160MB 파일에서 데이터를 가져오기 위해 다음 명령을 사용하고 있습니다. 가져오려는 환경은 max_allowed_packet이 "16M"으로 설정된 최신 WAMP 서버를 실행하고 있습니다.

C:\wamp\bin\mysql\mysql5.1.36\bin>mysql --max_allowed_packet=15M -u root -pXXX drupal < C:\prod.sql

ERROR 2006 (HY000) at line 644: MySQL server has gone away

이는 약 39초 동안 85.5MB를 가져온 후에도 지속적으로 발생하는 것 같습니다.

my.ini에서 max_allowed_packet을 늘리는 방법에 대한 많은 제안을 읽었으므로 기본값인 1M이 아닌 16M으로 설정했습니다. 그러나 내가 받는 오류는 내가 무엇을 하든 계속 발생합니다. 어떤 아이디어가 있나요?

이제 my.ini에서 해결되었습니다.

[wampmysqld]
port        = 3306
socket      = /tmp/mysql.sock
key_buffer = 384M
max_allowed_packet = 100M
table_cache = 4096
sort_buffer_size = 2M
net_buffer_length = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 64M
myisam_sort_buffer_size = 64M
basedir=c:/wamp/bin/mysql/mysql5.1.36
log-error=c:/wamp/logs/mysql.log
datadir=c:/wamp/bin/mysql/mysql5.1.36/data
thread_cache_size = 8
query_cache_size = 32M

innodb_buffer_pool_size = 384M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 10M
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 100

wait_timeout = 28800

[mysqldump]
quick
max_allowed_packet = 100M

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

답변1

SQL의 데이터 구조는 무엇입니까?

하나의 열이 16M보다 큰 이미지나 PDF와 같은 얼룩일 수 있습니다. max_allowed_packet을 160MB로 설정하고(어떤 패킷도 전체 파일 크기보다 클 수 없음) 다시 테스트해 보십시오. 나중에 언제든지 다시 전환할 수 있습니다.

가져온 데이터를 가져오면 SHOW TABLE STATUS 명령을 사용하여 데이터 크기를 가져오고 그 크기를 확인하면 더 정확한 값을 얻을 수 있습니다.

그러나 오류는 매우 일반적이며 오류가 표시되는 가능한 이유 목록이 있습니다.mysql 웹사이트에서

문제를 찾으려면 각 문제를 해결해야 하지만 내 경험상 항상 패킷이 너무 컸습니다. 바로 이런 이유로 내 프로덕션 상자 중 하나에서 max_packet_size를 180MB로 설정했습니다.

답변2

my.cnf에서 wait_timeout을 100처럼 올린 다음 서버를 다시 시작하십시오.

wait_timeout = 100

답변3

Richard의 답변이 일반적인 솔루션이지만 .err로그를 확인하세요. MySQL의 메모리가 부족하여 다시 시작될 수 있습니다. 최근에 하드웨어 오류로 인해 이런 일이 발생했습니다.

관련 정보