2018년 8월 19일 일요일

MySQL 테이블 데이터 추출하기(.csv)

머하웃의 간단한 아이템 기반 추천알고리즘을 적용해보는 과정에서,
알고리즘이 .csv 파일을 읽어 특정 개수의 아이템을 추천해주는 방식이었기 때문에, DB의 테이블을 .csv 파일로 뽑아내는 작업이 필요하였다. 


여기를 참고하여 데이터를 뽑았는데, 나는 첫번째 SQL을 사용하였다.

1
2
3
4
5
6
SELECT * FROM recommend_coursedata
INTO OUTFILE 'C:/MySqlOutputData/test.csv'
CHARACTER SET euckr
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n';
cs
이를 실행하면 
Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

에러가 발생하는데, 파일이 생성되는 경로와 mysql서버의 secure-file-priv 경로와 달라서 발생하는 에러 같다. 

INTO OUTFILE 의 경로는 
mysql 서버의 secure_file_priv 에 명시에되어있다. 


여기서 나오는 데이터를 기준으로 추천을 해주기 때문에 관리자 계정이 버튼으로 추천 데이터를 업데이트해주자는 생각으로 진행하였다. 그렇기 때문에 버튼을 누를 때 마다 
저 경로의 파일을 지우고, 새로 파일을 생성하는 방식으로 진행하려고 하였다. 

하지만, 경로가 ProgramData 속에 있기 때문에 수정/삭제에 대해 관리자 권한이 필요하였고, 경로를 바꾸기로 하였다. 

나의 경우에는 
my.ini 
secure-file-priv 의 경로를 직접 바꾼 후 mysql을 재시작하여 진행하였다. 


댓글 없음:

댓글 쓰기