집 >데이터 베이스 >MySQL 튜토리얼 >LOAD DATA INFILE을 사용할 때 MySQL이 내 파일에 액세스할 수 없는 이유는 무엇입니까?
LOAD DATA INFILE 오류 코드: 13
원격 서버에서 LOAD DATA INFILE 명령을 사용하여 MySQL 테이블에 데이터를 로드하려고 할 때 , 오류 코드: 13: "통계를 가져올 수 없습니다. '/httpdocs/.../.../testFile.csv'(오류 코드: 2)". 이는 MySQL이 지정된 파일에 액세스할 수 없음을 나타냅니다.
다음 단계는 이 문제를 해결하는 데 도움이 될 수 있습니다.
1. 충분한 권한 부여
데이터베이스 사용자에게 파일에 액세스할 수 있는 충분한 권한이 있는지 확인하십시오. 사용자에게 SELECT, FILE 및 LOAD DATA 권한 부여를 고려하세요.
GRANT SELECT, FILE, LOAD DATA ON *.* TO 'userName'@'%'
2. 파일 및 폴더 권한 설정
파일 및 폴더 권한이 MySQL이 파일을 읽을 수 있도록 허용하는지 확인하세요. 파일 권한을 644(rw-r--r--)로 설정하고 폴더 권한을 755(rwxr-xr-x)로 설정합니다.
<code class="bash">chmod 644 /httpdocs/.../.../testFile.csv chmod 755 /httpdocs/.../.../</code>
3. Apparmor 설정 확인
Ubuntu 시스템에서 Apparmor는 MySQL의 파일 액세스를 제한할 수 있습니다. MySQL이 "tmp" 디렉터리에서 파일을 읽을 수 있도록 하려면 /etc/apparmor.d/usr.sbin.mysqld에 다음 줄을 추가하세요.
/tmp/** rwk
다음을 사용하여 Apparmor 다시 로드:
<code class="bash">sudo /etc/init.d/apparmor reload</code>
4. SELinux 비활성화
SELinux(보안 강화 Linux)를 사용하는 경우 파일 액세스도 제한할 수 있습니다. 일시적으로 비활성화하고 LOAD DATA INFILE 명령을 다시 실행해 보십시오. 구체적인 지침은 SELinux 문서를 참조하세요.
추가 참고 사항:
위 내용은 LOAD DATA INFILE을 사용할 때 MySQL이 내 파일에 액세스할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!