>데이터 베이스 >MySQL 튜토리얼 >LOAD DATA INFILE을 사용할 때 MySQL이 내 파일에 액세스할 수 없는 이유는 무엇입니까?

LOAD DATA INFILE을 사용할 때 MySQL이 내 파일에 액세스할 수 없는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-03 20:21:02633검색

Why Can't MySQL Access My File When Using LOAD DATA INFILE?

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에서 액세스할 수 있는지 확인하세요. .
  • 데이터를 가져오려면 mysqlimport 또는 mysql.connector와 같은 데이터 가져오기 도구를 사용하는 것이 좋습니다. 대신

위 내용은 LOAD DATA INFILE을 사용할 때 MySQL이 내 파일에 액세스할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.