질문:
SELECT INTO OUTFILE을 사용하여 테이블 데이터를 서버의 기본 디렉터리 외부에 있는 CSV 파일로 내보내려고 하면 권한과 소유권을 조정한 후에도 계속 Errcode 13(권한 오류)이 발생합니다. 이는 Ubuntu 시스템, 특히 AppArmor를 실행하는 시스템에서 자주 발생합니다.
해결책:
1. AppArmor 상태 확인:
sudo aa-status
명령을 실행하여 mysqld가 적용 모드에 있는지 확인합니다. 목록에 나타나면 AppArmor가 쓰기 작업을 차단할 가능성이 높습니다.
2. AppArmor 구성 파일 편집:
/etc/apparmor.d/usr.sbin.mysqld
파일을 열고 파일 하단에 원하는 디렉터리 경로를 추가하고 읽기/쓰기 권한이 있는지 확인하세요. 예:
<code>/usr/sbin/mysqld { ... **/data/ r, /data/* rw,** }</code>
3. AppArmor 구성 파일 다시 로드:
sudo /etc/init.d/apparmor reload
명령을 실행하여 변경 사항을 적용합니다.
4. 쿼리를 다시 시도하세요.
AppArmor 구성 파일을 다시 로드한 후 SELECT INTO OUTFILE 쿼리를 다시 시도하세요. 이제 MySQL은 대상 디렉터리에 쓸 수 있습니다.
경고:
기본 위치가 아닌 디렉토리에 MySQL 쓰기 권한을 부여할 경우 보안에 미치는 영향에 유의하세요. 민감한 데이터를 보호하기 위한 적절한 조치가 마련되어 있는지 확인하십시오.
위 내용은 SELECT INTO OUTFILE로 MySQL Errcode 13(권한 오류)을 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!