> 데이터 베이스 > MySQL 튜토리얼 > 로드 데이터를 사용할 때 'MySQL 버전으로 허용되지 않는 명령'오류를 수정하는 방법은 무엇입니까?

로드 데이터를 사용할 때 'MySQL 버전으로 허용되지 않는 명령'오류를 수정하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-24 09:46:09
원래의
661명이 탐색했습니다.

데이터 로드 시 MySQL "명령이 허용되지 않음" 오류 해결

LOAD DATA LOCAL을 사용하는 동안 MySQL 오류 "ERROR 1148: 이 MySQL 버전에서는 사용된 명령이 허용되지 않습니다."가 발생하면 LOCAL 키워드가 비활성화되었음을 의미합니다. 이는 보안 조치입니다. 데이터를 로컬로 로드하려면 local-infile 옵션을 명시적으로 활성화해야 합니다.

How to Fix the

클라이언트 측 솔루션:

가장 간단한 해결책은 MySQL 서버에 연결할 때 local-infile를 활성화하는 것입니다.

<code class="language-bash">mysql -u myuser -p --local-infile mydatabase</code>
로그인 후 복사

myuser를 MySQL 사용자 이름으로 바꾸고, -p에 비밀번호를 입력하고, mydatabase을 데이터베이스 이름으로 바꾸세요.

중요 보안 참고 사항: local-infile을 활성화하면 보안 취약점이 발생합니다. 꼭 필요한 경우에만 활성화하고 나중에는 비활성화하세요.

서버측 솔루션(영구적이지만 주의가 필요함):

보다 영구적인 솔루션을 원한다면 MySQL 서버 자체에서 local-infile를 활성화하세요. 이를 위해서는 MySQL 구성 파일(Linux/macOS의 경우 my.cnf, Windows의 경우 my.ini)을 수정해야 합니다. 서버 구성 파일을 수정할 때는 각별히 주의하세요. 잘못된 변경은 서버 보안을 손상시킬 수 있습니다.

my.cnf 파일에 다음 줄을 추가하거나 수정하세요.

<code>loose-local-infile = 1</code>
로그인 후 복사

그런 다음 변경 사항을 적용하려면 MySQL 서버를 다시 시작하세요. 데이터 로딩이 완료된 후 loose-local-infile를 다시 0으로 설정하거나 해당 줄을 제거하여 보안 위험을 완화하는 것이 좋습니다.

대체 접근 방식(권장):

가장 안전하고 일반적으로 선호되는 방법은 LOAD DATA LOCAL을 모두 피하는 것입니다. 대신 클라이언트의 로컬 파일 시스템에서 직접 데이터를 로드하지 않는 방법을 사용하십시오. 여기에는 다음이 포함될 수 있습니다.

  • mysqlimport 사용: 이 명령줄 도구는 파일에서 데이터를 가져올 때 더 안전한 대안입니다.
  • 먼저 파일을 서버로 전송: scp, sftp 또는 기타 보안 파일 전송 방법을 사용하여 서버에 데이터 파일을 업로드한 다음 LOAD DATA INFILE을 사용합니다( 키워드) 서버의 파일 시스템에서 데이터를 로드합니다.LOCAL
데이터베이스 작업 시 항상 보안을 최우선으로 생각하세요.

활성화는 임시 조치여야 하며, 대체 접근 방식은 일반적으로 장기적인 데이터 로드에 더 안전하고 권장됩니다.local-infile

위 내용은 로드 데이터를 사용할 때 'MySQL 버전으로 허용되지 않는 명령'오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿