MySQL

[MySQL] 데이터 EXPORT 하는 2가지 방법

수노 SUNHO 2017. 11. 7. 10:40

데이터를 옮기는 방법은 여러가지가 있는데, 그 중 2가지 방법을 시도해봤다.


1. MySQL 명령어로 .sql 파일로 저장하기

이는 리눅스에서 실행해봤다.


 mysql -hhost_name -uuser_name -ppassword database_name table_name > write_the_name_you_want.sql


위의 명령어를 실행한 위치에 파일이 생긴다.


 mysql -hhost_name -uuser_name -ppassword database_name < write_the_name_you_want.sql


위에서 만든 파일이 실행되어 테이블이 생성(CREATE)되고 데이터가 삽입(INSERT)된다.

만약 파일을 생성한 곳과 적용할 데이터베이스가 다른 곳이고 버전이 다른 경우
버전 낮은 곳 → 버전 높은 곳 으로의 적용은 되지만 반대의 경우는 실패한다.


2. 'INTO OUTFILE ~' SQL문으로 .csv 파일로 저장하기


 SELECT * FROM database_name.table_name 

 INTO OUTFILE 'write_the_name_you_want.csv' 

 CHARACTER SET utf8 

 FIELDS TERMINATED BY ';' 

 LINES TERMINATED BY '\n';



SQL문의 실행 결과를 var/lib/mysql/에 .csv 파일로 저장한다.


'LOAD DATA ~' SQL문을 통하여 데이터를 저장하면 되는데, (이 부분은 따로 포스팅해뒀다)

ERROR 1045, access denied 문제에 직면할 수 있는데 말 그대로 파일이 저장된 위치에 접근할 수 없어서 그렇다.

GRANT ~ ON 문을 활용하여 권한을 주면 된다.