[mysql] MySQL : LOAD DATA LOCAL INFILE 활성화

Ubuntu 12 LTS에서 Mysql 5.5를 실행하고 있습니다. my.cnf에서 LOAD DATA LOCAL INFILE을 어떻게 활성화해야합니까?

구성의 여러 위치에서 local-infile을 추가하려고 시도했지만 여전히 “이 MySQL 버전에서는 사용 된 명령을 사용할 수 없습니다”라는 메시지가 나타납니다.



답변

MySQL 5.5 매뉴얼 페이지에서 :

LOCAL은 서버와 클라이언트가 모두이를 허용하도록 구성된 경우에만 작동합니다. 예를 들어, mysqld가 –local-infile = 0으로 시작된 경우 LOCAL이 작동하지 않습니다. 6.1.6 절.“LOAD DATA LOCAL의 보안 문제”를 참조하십시오.

옵션을 설정해야합니다.

local-infile=1

my.cnf 파일 의 [mysql] 항목에 넣거나 –local-infile 옵션을 사용하여 mysql 클라이언트를 호출하십시오 .

mysql --local-infile -uroot -pyourpwd yourdbname

“local infile”기능 서버 측을 활성화하려면 동일한 매개 변수가 [mysqld] 섹션에 정의되어 있는지 확인해야합니다 .

보안 제한 사항입니다.


답변

편집해야 할 my.cnf 파일은 /etc/mysql/my.cnf 파일입니다. 다만:

sudo nano /etc/mysql/my.cnf

그런 다음 다음을 추가하십시오.

[mysqld]
local-infile

[mysql]
local-infile 

헤더 [mysqld][mysql] 이 이미 제공되어 있습니다. 파일에서 헤더를 찾아 local-infile을 추가하십시오. 각각 아래 .

Ubuntu 12.04 LTS의 MySQL 5.5에서 작동합니다.


답변

드라이버 php5-mysql을 기본 드라이버로 교체하십시오.

데비안에서

apt-get install php5-mysqlnd


답변

mysql 터미널 명령으로 MySQL 8.0.11 에서이 문제를 해결했습니다.

SET GLOBAL local_infile = true;

평소와 같이 먼저 로그인했음을 의미합니다.

mysql -u user -p*

그 후 다음 명령으로 상태를 볼 수 있습니다.

SHOW GLOBAL VARIABLES LIKE 'local_infile';

켜져 있어야합니다. 로컬 파일을 데이터베이스에로드 할 때 발행 된 보안에 대해서는 쓰지 않을 것입니다.


답변

우분투에서 mysql의 맛이 작동하지 않고 여전히 1148 오류가 발생하는 경우 load data infile명령 줄을 통해 명령을 실행할 수 있습니다

터미널 창을 엽니 다

운영 mysql -u YOURUSERNAME -p --local-infile YOURDBNAME

mysqluser 비밀번호를 입력하라는 메시지가 표시됩니다

MySQLMonitor를 실행하고 명령 프롬프트가 나타납니다. mysql>

load data infile명령을 실행하십시오 (세미콜론으로 끝나는 것을 잊지 마십시오 ; )

이처럼 :

load data local infile '/home/tony/Desktop/2013Mini.csv' into table Reading_Table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';


답변

아래 이미지를 참조하십시오 …

나는 --local-infile=1일반적인 mysql 명령에 추가 했다 mysql -u root -p

따라서 총 라인은 다음과 같습니다.

mysql –local-infile = 1 -u 루트 -p

여기에 이미지 설명을 입력하십시오


답변

또한 다른 독자에게 Django 에서이 작업을 시도하고 서버에서 local_infile을 허용하면 (mysql 클라이언트를 통해 SHOW VARIABLES를 입력하여 확인할 수 있음) settings.py 파일에 추가 할 수 있습니다 (python MySQLdb는 ‘ t 기본적으로 .my.cnf 파일을 읽습니다).

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',
        'USER': 'myname',
        'PASSWORD': 'mypass',
        'HOST': 'myserver',
        'PORT': '3306',
        'OPTIONS' : {
            'local_infile':1,
        },
    }
}