> > mysqldump 라는 프로그램을 쓰시면 됩지요.
> >
> > $mysqldump SOURCEDB SOURCETABLE > TARGETFILE -u UID -p
> >
> > 이렇게 하시면 원하시는 결과를 얻으실수 있겠습니다..
> >
> > 물론..mysql client 에서도 select * into outfile 'FILENAME'
> > from foo;
> >
> > 하셔도 원하시는 결과를 얻을 수 있구요...
> >
> > 첫번째것이 더 간단하지요...?!
> >
>
>
> db에서 file로 backup받았는데.....
> 다시 db로 저장하는건 어떻게 하나요...
> 메뉴얼을 보면..
> load data infile 'filename' replace .... 라고 쓰여있던데...
> replace다음에 저장할 table명을 써봤는데..
> 안되더라구요...
> 어떻게 하나요??
>
백업을 하실때 백업의 형태에 따라 restore의 방법도 결정하셔야 합니다.
즉 mysqldump DB_name table_name > file_name
과 같이 덤프를 받았다면
mysqldump DB_name < file_name 을 하시면 됩니다.
이 파일을 보시면 SQL문으로 테이블 생성부터 insert으로 값들을 저장하게 되어있습니다.
하지만 이런 SQL문이 아닐 경우에는 즉 위의 select 문으로 저장을 했을시는 SQL문이 아닌
형태로 저장이 됩니다.
그럼므로 LOAD 문을 써서 다시 resotre할 수 있습니다.
( 대용량의 경우 이 방법을 권장합니다. 속도가 더 빠릅니다. )
그리고 위에 질문하신 [REPLACE | IGNORE] 은 restore시 unique key가 있어 중첩이 될때
처리 방법에 대한 것입니다.
REPLACE는 현재 있더라도 이것으로 대체한다는 뜻이며
IGNORE는 무시하고 넘어간다는 뜻입니다.
그럼 간단한 LOAD문의 예를 들어 보겠습니다.
data.txt
-------------
a 111111
b 222222
3 333333
-------------
LOAD DATA INFILE 'data.txt' INTO TABLE table_name
FIELDS TERMINATED BY ' '
( LINES TERMINATED BY '
' -> 이것은 디폴트입니다.)
나머지 자세한 것은 메뉴얼을 참고하시기 바랍니다.
|