dbeaver, 워크벤치, DataGrip 등 대부분의 tool들에는 export가 있어 편하게 csv파일로 데이터를 export할 수 있다.
그러나, idc 환경이라든가, tool사용이 어려운 상황에 명령어로 export를 해야 하는 경우가 있다. 그 경우엔 select하여 조회된 데이터들을 직접 export해주어야 한다. 그 절차와 시행착오에 관해 정리해 보았다.
0.mysql 접속
- 파일 import/export 경로 확인 명령어 : SHOW VARIABLES LIKE “secure_file_priv”;
1.만일 경로가 잡혀 있는 경우
- 테스트 : SELECT * FROM 테이블명 INTO OUTFILE ‘위의 export 경로/test.csv’;
- 정상적으로 csv파일이 생성돼 있는 것을 확인할수 있을것.
2.만약 경로가 null인경우
- 위의 테스트를 수행할 경우"MySQL server is running with the -secure-file-priv" 에러 발생
- my.cnf에 경로를 설정해주어야 한다.
- my.cnf 위치 찾기(OS마다 위치가 다르다.) : mysqld --verbose --help | grep -A 1 ‘Default options’ 또는 mysql --help | grep “Default options” -A 1
- 맥 brew 설치의 경우 경로 -> vi /opt/homebrew/etc/my.cnf
- cnf파일에 내용 추가 -> secure-file-priv=“/var/lib/mysql-files/”
- /var/lib/mysql-files 이 폴더가 없는 경우 하나 생성해주고 오너 설정 없는 경우 permission denied 발생하므로 해당 폴더의 owner를 mysql:mysql 로 설정 -> chown -R mysql:mysql mysql-files
- mysql.server restart 실행
- mysql 접속
- 테스트 : SELECT * FROM 테이블명 INTO OUTFILE ‘위의 export 경로/test.csv’;
- 정상적으로 csv파일이 생성돼 있는 것을 확인할수 있을것.
'프로그래밍 > database' 카테고리의 다른 글
redis expire time(set, hset, zadd) 에 관하여 (0) | 2022.12.16 |
---|---|
RDB index 원리 (0) | 2022.12.15 |
MYSQL SHOW INDEX (0) | 2022.12.15 |
GROUP BY 2개 이상 (0) | 2022.12.10 |
AWS RDS DB 마이그레이션(mysql, posgres dump) (0) | 2022.11.29 |