MySQL/MariaDB 데이터를 CSV로 내보내기
· Version : MySQL 5.7
MySQL / MariaDB에 저장되어 있는 데이터를 CSV 파일로 저장하는 방법에 대해서 알아본다.
- 파일로 저장되어 있는 데이터를 MySQL/MariaDB테이블로 Bulk Insert 하기 : http://sqlmvp.kr/220574644101
실습에 사용할 데이터베이스 및 테이블을 생성하고 데이터를 입력 한다.
create database sw_test
use sw_test;
create table tbl_a (name varchar(10))
insert into tbl_a values ('sqlmvp1'); insert into tbl_a values ('sqlmvp1'); insert into tbl_a values ('sqlmvp2'); insert into tbl_a values ('sqlmvp3'); insert into tbl_a values ('sqlmvp4'); insert into tbl_a values ('sqlmvp5');
select * from tbl_a; |
아래 스크립트를 사용하여 쿼리 결과를 CSV 파일로 저장한다
SELECT name, IFNULL(name, ‘N/A’) FROM tbl_a INTO OUTFILE '/var/lib/mysql-files/tbl_a.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; |
- INTO OUTFILE : 파일 저장 경로 및 파일명을 기입한다.( 'C:/tmp/tbl_a.csv')
- FIELDS ENCLOSED BY : 각 필드의 값을 큰따옴표(“)로 묶는다. 이렇게 하면 쉼표가 포함된 값이 필드 구분 기호로 해석되지 않는다.
- LINES TERMINATED BY : 행에 대한 종료를 나타낸다. 실습에서는 '\r\n'로 구분된다.
- IFNULL(name, ‘N/A’) : NULL 값이 있는 경우 NULL 대신 다른 값(실습에서는 ‘N/A’)으로 표시된다.
-
CSV파일로 저장시 아래와 같은 오류를 반환하는 경우가 있는데 이는 폴더 접근에 대한 이슈로 접근 권한 획득이 필요하다.
Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement |
secure-file-priv은 INFILE, OUTFILE을 사용할때 파일을 읽을 수 있는 위치를 제한한다. 아래 명령을 통해서 허용되는 위치를 확인할 수 있다.
SHOW VARIABLES LIKE "secure_file_priv"; |
CSV 저장이 완료되었으면 실제 데이터가 잘 저장되었는지 확인한다. 일부 폴더의 경우 접근 제한이 있으므로 필요에 따라 권한을 획득할 수 있도록 한다.
2017-10-23 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com
MySQL, MariaDB, MySQL 데이터 내보내기, CSV 저장, outfile, cat, MySQL 쿼리 결과 저장, MariaDB 쿼리 결과 저장
'MySQL, MariaDB' 카테고리의 다른 글
MySQL/MariaDB 테이블의 Row count 구하기 (0) | 2019.03.24 |
---|---|
MySQL/MariaDB InnoDB Storage Engine (Data Page) (0) | 2019.03.24 |
MySQL/MariaDB Table Update Safe 모드 (0) | 2019.03.24 |
MySQL/MariaDB max_connection 개수와 성능 (0) | 2019.03.24 |
MySQL/MariaDB 사용자 생성 (0) | 2019.03.24 |