(Mac) Error Code: 1290. secure-file-priv option

한가은·2024년 6월 3일
0

상황

mysql workbench에서 table data import wizard로 데이터를 불러오려오는데 100만개 정도의 데이터를 불러오려니 시간이 너무 오래걸렸다.

찾아보니 LOAD DATA 쿼리를 실행하면 불러오는 속도가 빠르다길래 해봤는데 아래와 같은 에러가 발생했다.

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

구글링해서 찾아봐도 뭐가 뭔지 이해가 안가고 .. 여러가지 방법을 다 시도해보니 얼떨결에 해결이 되긴 됐다. 내가 해 본 방법으로 레쓰고

해결방법

mySQL에서는 파일을 로드할때 지정된 경로에서만 로드가 되도록 설정되어 있다. 나는 NULL값만 들어있었지만 이것도 문제가 된다고 한다.

1. 터미널에서 mysql 접속

워크벤치를 사용하니 자꾸 접속도 어떻게 했는지 까먹는다..
아래와 같이 입력하고 패스워드 입력해서 접속하기

mysql -u root -p

2. secure_file_priv 경로 확인

SHOW VARIABLES LIKE 'secure_file_priv';

입력하면 나처럼 NULL 값이든, 어떤 경로가 뜨는 걸 볼 수 있다.
불러오려는 csv파일이 해당 경로에 없기 때문에 발생하는 오류다.
그래서 경로가 있다면 그 값을 삭제해주고, "" 값을 넣어주어야한다.

3. my.cnf 파일 열어서 경로 수정하기

3-1. my.cnf 경로 찾기

/usr/local/mysql/etc/my.cnf
/etc/my.cnf
/etc/mysql/my.cnf

이 중에 my.cnf가 있다고는 하는데 나는 아래와 같은 경로에 들어있었다.
/opt/homebrew/etc/my.cnf

참고로, 설치 방법에 따라 my.cnf 파일이 없는 경우도 있다고 하는데, vim으로 빈 my.cnf 파일을 만들고 ... 하는 방법도 있는 것 같았다.

cd /opt/homebrew/etc

위와 같이 cd로 my.cnf가 있는 폴더로 이동한 후

vim my.cnf

이렇게 vim으로 파일을 열면, 아래와 같은 창이 뜬다.

3-2. my.cnf 파일 수정


기본은 일반모드인데 i 를 입력하면 맨 아래 --INSERT--라고 뜨면서 편집이 가능하다.

이 때, 맨 아래에 secure-file-priv = ""를 입력해주고
esc 키를 누르면 처음과 같은 일반모드로 돌아간다.
:wq로 저장 및 종료로 창 닫기 !

4. mysql 재부팅

mysql.server restart 로 재부팅하면 끝 !

다시 mysql workbench로 돌아와서 LOAD DATA 쿼리를 실행해봤다.
이번엔 이런 오류 발생 🥹..
Error Code: 1265. Data truncated for column 'product_id' at row 1

0개의 댓글