데이터를 옮기는 방법은 여러가지가 있는데, 그 중 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 문을 활용하여 권한을 주면 된다.
'MySQL' 카테고리의 다른 글
[MySQL] my.cnf 위치 찾기 (1) | 2017.12.20 |
---|---|
[MySQL] 현재 프로세스 리스트 보기 (0) | 2017.10.31 |
[MySQL] Load Data 시도 중 secure_file_priv 문제 직면 (0) | 2017.10.26 |
[MySQL] Load Data, 파일로 데이터 Import 하기 (0) | 2017.10.25 |