MySQL의 SELECT INTO OUTFILE 오류 코드 13 문제 해결
MySQL의 SELECT INTO OUTFILE
을 사용하여 데이터를 CSV로 내보내면 Errcode 13 권한 오류가 발생할 수 있습니다. 이는 일반적으로 출력 파일의 위치가 MySQL의 기본 저장소 디렉터리(종종 /tmp
)가 아닐 때 발생합니다. 사용자는 대체 디렉토리에 저장할 때 이 문제를 자주 경험합니다.
이 오류는 운영 체제 보안으로 인해 발생합니다. Ubuntu Server와 같은 배포판은 기본적으로 AppArmor를 활성화하는 경우가 많으며 MySQL 프로필은 "강제" 모드일 수 있습니다. 이는 특정 디렉토리에 대한 MySQL의 쓰기 액세스를 제한합니다.
이 문제를 해결하려면 선택한 디렉터리에 쓸 수 있도록 MySQL용 AppArmor 프로필을 조정하세요.
AppArmor 상태 확인: 이 명령을 사용하여 MySQL용 AppArmor 모드를 확인하세요.
<code class="language-bash">sudo aa-status</code>
AppArmor 프로필 편집(강제 모드인 경우): AppArmor가 강제하는 경우 /etc/apparmor.d/usr.sbin.mysqld
파일을 수정합니다. 대상 디렉터리에 대한 쓰기 액세스 권한을 부여하는 줄을 추가하거나 수정합니다. 예를 들어 /data/
및 해당 하위 디렉터리에 대한 쓰기를 허용하려면 다음을 입력하세요.
<code>/usr/sbin/mysqld { ... **/data/ r, /data/* rw, }</code>
AppArmor 프로필 다시 로드: 프로필을 편집한 후 AppArmor를 다시 로드합니다:
<code class="language-bash">sudo /etc/init.d/apparmor reload</code>
중요한 보안 고려 사항: MySQL에 대한 쓰기 액세스 권한을 부여하려면 보안에 미치는 영향을 신중하게 고려해야 합니다. 무단 데이터 액세스를 방지하기 위해 강력한 권한과 보안 조치를 구현합니다.
위 내용은 MySQL이 Outfile return errcode 13에 선택하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!