2014-11-27 3 views
0

여러 데이터베이스가있는 백업 파일에서 단일 데이터베이스를 가져 오는 방법은 무엇입니까?여러 데이터베이스가 포함 된 .sql 파일에서 단일 데이터베이스를 가져 오는 방법

주요 문제는 파일이 921MB이므로 메모장이나 IDE 중 하나에서 성공적으로 열 수 없다는 것입니다. 그렇게 할 수 있다면 필요한 SQL을 얻고 수동으로 phpMyAdmin에 복사합니다.

백업 파일에서 바로 가져올 수 있다면 좋을 것입니다.

는 나는 이런 식으로 뭔가있을 것 같아하지만 난 그게

mysql -u root -p --database1 database1 < backup.sql 

아무도 도와 드릴까요 동작하지 않습니다? 감사합니다

+0

전체를 임시 데이터베이스로 복원합니다. 그런 다음 원하는 테이블을 이동하십시오. – MrCleanX

답변

0

나는 몇 가지 데이터 로딩 스크립트를 사용하여이 같은 문제가 있었다. 스크립트는 다음 형태로되어 있습니다 :

insert into table(a,b,c) values((a0,b0,c0),(a1,b1,c1),...(a50000,b50000,c50000)); 

이 하이퍼 - 길이 명령문을 5 개 이상 포함합니다. 이 형식은 데이터를 가져 오려는 시스템에서 인식 할 수 없습니다. 그 형식은 다음과 같습니다.

insert into table(a,b,c) values(a0,b0,c0); 
insert into table(a,b,c) values(a1,b1,c1); 
... 
insert into table(a,b,c) values(a50000,b50000,c50000); 

작은 스크립트조차도 몇 MB 였고 텍스트 편집기에로드하는 데 최대 1 시간이 걸렸습니다. 그래서 표준 텍스트 편집기에서 이러한 변경을하는 것은 의문의 여지가 없었습니다. 필자는 첫 번째 형식으로 읽고 두 번째 형식으로 구성된 텍스트 파일을 만든 빠른 Java 응용 프로그램을 작성했습니다. 가장 큰 스크립트도 총 20 초 미만입니다. 예, 몇 분이 아닙니다. 심지어 많은 데이터가 인용 된 텍스트 일 ​​때도 있으므로 파서를 인용 식으로 만들어야했습니다.

비슷한 일을하기 위해 자신 만의 앱 (Java, C#, Perl 등)을 작성할 수 있습니다. 원하는 데이터베이스와 관련된 행만 별도의 스크립트 파일에 작성하십시오. 앱을 작성하고 테스트하는 데는 몇 시간 또는 며칠이 걸리지 만 매우 큰 파일로 작업하는 텍스트 편집기를 연구하는 것만으로는 충분하지 않을 것입니다.

0

대상 데이터베이스가 이미 존재합니까?

그렇다면 :

mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]

그렇지

mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

+0

이것은 처음 시도한 것이지만 아무것도하지 않는 것 같습니다. 그것은 작은 파일과 함께 잘 작동하지만 시간이 지난두고 그것을 작동하지 않았다. –

+0

나는 터미널이 충돌한다고 생각한다. 내가 파일에서 다른 데이터베이스의 다른 모든 데이터를 필요로하지 않기 때문에 복원하려는 데이터베이스와 관련된 파일의 세그먼트를 지정하는 방법을 찾으려고했습니다. –

관련 문제