2012-10-18 3 views
0
내가 cmd를 줄을 사용하여 가져 오기 매우 큰 파일을 시도

:건너 뛰기 X-행 명령을 통해 이전 데이터

mysql -uroot -ppassword --default-character-set=utf8 mydb < /Users/user1/Downloads/dump.sql 

그러나 잠시 후 나는 메시지를 얻을 :

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

그래서 이전에 삽입 된 데이터를 지우지 않고 8498 라인에서 다시 가져 오기를 시작해야합니다.

어떻게 할 수 있습니까?

많은 감사 .. 내가 이것을 테스트 할 수있는 방법이없는

+0

덤프는 어떻게 생성 되었습니까? 이 오류는 파일에 이상이 있는지 궁금해합니다. 보통 cmd 라인 가져 오기는 시간 초과되지 않습니다. 덤프가 내 'mysqldump'를 만들었다면 처음에는 '드롭 테이블'이있을 수 있습니다 (덤프 매개 변수에 따라 다름). 이 방법으로 가져 오기를 수행해도 'dump.sql'파일을 편집하지 않고도 레코드를 건너 뛸 수 있습니다. – ethrbunny

답변

0

내가 ethrbunny의 질문과 의견에 동의 읽어, 사용자의 명시 적 질문에 대답하는 동안 ...하지만 뭔가 같은 리눅스 꼬리의 맨 페이지

-n, --lines=K 
output the last K lines, instead of the last 10; 
or use -n +K to output lines starting with the Kth 

(I 말한다으로

tail -n +8497 /Users/user1/Downloads/dump.sql | mysql -uroot -ppassword --default-character-set=utf8 mydb 

-n 필요가없는 것이다 꼬리의 일부 버전, 단지 + K 그래서 당신의 부분에 약간의 실험이 필요할 수 있습니다.) 즉,

또는 sed와 같은 생각,

sed -n '9498,9999999p' /Users/user1/Downloads/dump.sql | mysql -uroot -ppassword --default-character-set=utf8 mydb 

을 봤어요 999999는 파일의 레코드 수보다 큰 숫자입니다.

IHTH.

+0

덤프가 mysqldump로 이루어진 경우, xxx 라인은 대량 삽입 구문의 일부일 수 있으며 mysql (그 자체만으로는)이 유효하지 않을 수 있습니다 - IE는 테이블 (콜라, 콜라 ..)의 값을 삽입합니다 ... .. 더 많은 데이터 ' – ethrbunny

+0

@ethrbunny : agree. 나는 mysql 덤프 파일의 형식을 모른다. 위의 내용이 효과가있을지라도 많은 레코드가 있다면. 내 대답이 O.P.를 돕지 않는다면, 나는 그것을 없앨 것이다. 모두에게 행운을 빕니다. – shellter

+0

OP는 기록을 남기지 않았다. 귀하의 접근 방식은 일부 유형의 덤프에 대해서는 유효하다고 생각합니다. – ethrbunny

0

@shellter에서 다음 -에 '< 임시 테이블 > 제한 < 출발 선에서 < 최종 테이블을 선택 > * 삽입, 라인 >를 가져 오는 하나의 수단이 임시 테이블에 데이터를 가져하는 것입니다, 다음 않습니다.

덤프에 문제가 있다고 생각합니다.