MySQL 오류 1290: 데이터 내보내기를 차단하는 보안 파일 전용 옵션
INTO OUTFILE을 사용하여 파일로 데이터 내보내기와 관련된 MySQL 문을 실행할 때 절을 사용하면 "오류 코드: 1290. MySQL 서버가 --secure-file-priv 옵션으로 실행 중이므로 이 명령문을 실행할 수 없습니다." 오류가 발생할 수 있습니다. 이는 서버가 파일 작업을 제한하는 강화된 보안 조치로 구성되었을 때 발생합니다.
Secure File Private 옵션 설명
--secure-file-priv 옵션은 제한됩니다. MySQL 서버 내의 파일 액세스 및 권한. 기본적으로 이 옵션은 활성화되어 있으며 특정 디렉터리를 파일 작업에 허용되는 유일한 위치로 할당합니다. 이 지정된 디렉터리 외부의 파일에 액세스하거나 쓰려고 하면 오류 1290이 발생합니다.
간단한 해결 방법: 허용된 디렉터리에 대한 경로 제한
수정하지 않고 이 오류를 해결하려면 서버 설정에서 사용자는 INTO OUTFILE 절에서 허용된 디렉터리를 명시적으로 지정할 수 있습니다.
SELECT * FROM xxxx WHERE XXX INTO OUTFILE '<path/to/permitted/directory>/report.csv' FIELDS TERMINATED BY '#' ENCLOSED BY '"' LINES TERMINATED BY '\n'
대체 솔루션:
이 작업을 수행하려면 MySQL 구성 파일(일반적으로 my.ini 또는 my.cnf)을 편집해야 합니다. secure_file_priv 옵션을 주석 처리하거나 제거하거나 빈 문자열(``)로 설정하십시오. 그러나 이렇게 하면 서버 보안이 저하되므로 통제된 환경에서만 수행해야 합니다.
파일 액세스가 필요한 경우 허용된 디렉터리 이상에서는 실행 사용자에게 FILE 권한을 부여할 수 있습니다. 이는 다음 SQL 문을 사용하여 수행할 수 있습니다.
GRANT FILE ON *.* TO <username>@'<host>';
위 내용은 MySQL 오류 1290 수정 방법: \'MySQL 서버가 --secure-file-priv 옵션으로 실행 중이므로 이 명령문을 실행할 수 없습니다\'?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!