MySQL SELECT INTO OUTFILE 문을 사용하여 테이블의 내용을 csv 파일로 덤프하려고합니다. 만약 내가한다면:
SELECT column1, column2
INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
outfile.csv는이 데이터베이스의 파일이 저장된 동일한 디렉토리의 서버에 생성됩니다.
그러나 쿼리를 다음과 같이 변경하면
SELECT column1, column2
INTO OUTFILE '/data/outfile.csv'
FIELDS TERMINATED BY ','
FROM table_name;
나는 얻다:
ERROR 1 (HY000): Can't create/write to file '/data/outfile.csv' (Errcode: 13)
Errcode 13은 권한 오류이지만 / data의 소유권을 mysql : mysql로 변경하고 777 권한을 부여해도 오류가 발생합니다. MySQL은 "mysql"사용자로 실행 중입니다.
이상하게도 내가 시도한 다른 디렉토리가 아닌 / tmp에 파일을 만들 수 있습니다. 사용자 mysql이 디렉토리에 쓸 수있는 권한이 설정되어 있어도 가능합니다.
이것은 Ubuntu에서 실행되는 MySQL 5.0.75입니다.
/tmp
.