2011-10-12 1 views
8

큰 덤프 (수십 GB)가 있으며 ENGINE = INNODB 매개 변수를 준수하지 않고 새 테이블로 가져 오려고합니다.MySQL 덤프 파일을 가져 오는 동안 ENGINE = INNODB 매개 변수를 무시할 수 있습니까?

대용량 파일 전용 덤프 편집 전용 편집기를 여러 개 시도했지만 수정 사항을 저장하는 데 많은 시간이 걸리므로 ENGINE = INNODB 매개 변수를 무시하고 무시하는 것이 훨씬 더 적합합니다 (예 : 기본 엔진 사용).

InnoDB가 덤프를 가져 오기 매우 어렵 기 때문에 엔진을 가져 와서 변경하는 것은 옵션이 아니므로 며칠이 걸릴 것입니다. 나오지도

sed -i 's/ENGINE=INNODB/ENGINE=MYISAM/g' filename 
와 장소 편집에 대한

답변

5

당신이 리눅스에있는 경우/유닉스 시스템은

+3

그것은 언급 할 가치가 그 어떤 그 드문 경우에 데이터베이스의 데이터 중 실제로'ENGINE = INNODB'라는 텍스트가 포함되어 있다면,이 명령은 데이터를 손상시킵니다. – Asaph

+1

@Asaph - 좋은 지적입니다. –

+3

'sed -i -re 's/^ (\) ENGINE =) INNODB/\ 1yyam/gi''를 사용하면 실제 데이터에 인코딩되지 않은 새줄 문자가 없어야하므로 안전해야합니다. –

7

mysqldump --compatible=no_table_options

이 나를 위해 일한 방법