php / mariadb 업데이트 후 데이터 로컬 파일 로드 금지
이전에도 문의한 적이 있지만 도움이 될 만한 새로운 게시물을 찾을 수 없었습니다.LOAD DATA LOCAL INFILE은 오늘까지 완벽하게 작동하고 있습니다.PHP와 (잘 모르겠지만) MariaDB의 업데이트를 실행한 것 외에는 변경하지 않았습니다.현재 PHP 7.2.17과 MariaDB 10.1.38을 실행하고 있습니다.
다음 오류가 표시됩니다.경고: mysqli::query():LOAD DATA LOCAL INFILE 금지
검색 결과: - db 사용자는 모든 권한을 가지고 있으며 루트 사용자도 이 오류를 받습니다. - my.cnf에서 local-infile=1 엔트리를 확인했습니다.
load 문은 mysql 명령줄에서는 정상적으로 동작하지만 PHP 스크립트에서는 동작하지 않습니다.
Import를 실행하는 방법은 다음과 같습니다.
define ('DB_USER', "db_user");
define ('DB_PASSWORD', "my_password");
define ('DB_DATABASE', "prosjekt");
define ('DB_HOST', "localhost");
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
마지막 줄 -> $mysqli-> query($query)에 오류가 표시됩니다.
$query = <<<eof
LOAD DATA LOCAL INFILE '$fileName'
INTO TABLE prosjekt
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r'
(prosjektnavn,prosjektstatus,prosjektbesk,oppdragsgiver,prosjektans,prosjektdelt,start,slutt,prosjektnr,prosjekttype,sortnr,ant_rapport,litt_link)
eof;
$mysqli->query($query);
mysql 콘솔에서는 정상적으로 실행할 수 있지만 PHP 스크립트에서는 실행할 수 없습니다.오늘부터 실패합니다.어떻게 고칠지 생각나는 거 없어?SHOW VARIULES를 실행했을 때, 이것이 동작하도록 되어 있는 것을 알 수 있습니까?
local_infile ON
관심 있는 사람을 위해서 해결했어요.이 글을 읽었는데
PHP 업그레이드로 인해 내 php.ini가 변경된 것 같습니다.설정을 유지하거나 덮어쓰는 방법에 대해 몇 가지 질문이 있는 것 같습니다.내가 거기에 정답을 맞혔는지 모르겠어!
이것은 cron 작업이기 때문에 여기서 php.ini를 수정해야 했습니다.
/etc/syslog/7.2/cli/syslog.ini
이 행의 코멘트를 해제하거나 변경합니다.
mysqli.allow_local_infile = 온
각 디렉토리 /etc/php/7.2 -> /fpm/apache에서 php-fpm을 실행하고 있는 경우 php.ini에 대해서도 같은 처리를 합니다.
잠에서 깨어난 지 얼마 안 돼 앱 중 하나가 php7.2와 mysqli를 사용하여 똑같은 작업을 하고 있다.
확인해보니 Ubuntu 자동 보안 업데이트의 일부로 어젯밤 php7.2가 업그레이드된 것 같습니다.less /var/log/apt/history.log.
나의local_infile변수도 켜져 있었지만 작동하지 않는 것 같습니다.문제를 해결했습니다.
mysqli_options($conn, MYSQLI_OPT_LOCAL_INFILE, true)
언급URL : https://stackoverflow.com/questions/55818568/load-data-local-infile-forbidden-after-php-mariadb-update
'source' 카테고리의 다른 글
| django.db.db.ss.Operation Error: (1044, "사용자 'someuser'@'localhost'에 대해 데이터베이스 '/path/to/Database'에 대한 액세스가 거부되었습니다." (0) | 2022.12.03 |
|---|---|
| "java - cp"와 "java - jar"의 차이점은 무엇입니까? (0) | 2022.12.03 |
| 인수가 있는 PHP array_filter (0) | 2022.12.03 |
| PHP - 컬 디버깅 (0) | 2022.12.03 |
| 라라벨 웅변 모델의 세 테이블 결합 방법 (0) | 2022.12.03 |