--secure-file-priv 인수를 정규화하지 못했습니다.
를 실행해야 합니다.load_file()진술.서류에 의하면secure_file_priv를 디세블로 할 필요가 있습니다.""또는 로 설정해야 합니다.path.아니라면,load_file()돌아온다NULL.
- 편집할 때
my.cnf이 변수를 설정합니다.mysqld-group로.""mariadb 를 문제없이 재기동할 수 있습니다.-이 변수를 패스로 설정하면(secure_file_priv="/path/"다음과 같은 출력이 표시됩니다.
sudo systemctl restart mariadb.service
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
> sudo systemctl status mariadb.service
mariadb.service - MariaDB 10.1 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2017-09-12 10:50:59 CEST; 13s ago
Process: 4815 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Process: 5306 ExecStart=/usr/libexec/mysqld --basedir=/usr $MYSQLD_OPTS $_WSREP_NEW_CLUSTER (code=exited, status=1/FAILURE)
Process: 5271 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS)
Process: 5249 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
Main PID: 5306 (code=exited, status=1/FAILURE)
Status: "MariaDB server is down"
sep 12 10:50:57 BEL002.HOME systemd[1]: Starting MariaDB 10.1 database server...
sep 12 10:50:58 BEL002.HOME mysql-prepare-db-dir[5271]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
sep 12 10:50:59 BEL002.HOME mysqld[5306]: 2017-09-12 10:50:59 139800931358976 [Warning] Failed to normalize the argument for --secure-file-priv.
sep 12 10:50:59 BEL002.HOME mysqld[5306]: 2017-09-12 10:50:59 139800931358976 [ERROR] Aborting
sep 12 10:50:59 BEL002.HOME systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
sep 12 10:50:59 BEL002.HOME systemd[1]: Failed to start MariaDB 10.1 database server.
sep 12 10:50:59 BEL002.HOME systemd[1]: mariadb.service: Unit entered failed state.
sep 12 10:50:59 BEL002.HOME systemd[1]: mariadb.service: Failed with result 'exit-code'.
실행했습니다.chmod 777 /path/.
설정했을 경우secure_file_priv로."",선택한다.load_file("file name")아직 반환되지 않음NULL.
디세블로 하려면secure_file_priv?
이 문제는 systemd 보호가 원인일 수 있습니다.데비안 10 버스터에서도 비슷한 문제가 있었습니다.
한다면secure-file-priv=/home- 데몬이 시작되지만 다음 경우에 실패합니다.SELECT ... INTO OUTFILE.한다면secure-file-priv=/home/username- 데몬이 다음 문자로 시작되지 않음Failed to normalize the argument for --secure-file-priv오류입니다. 하지만 secure-file-priv에 다른 경로를 사용하면 모든 것이 잘 작동합니다. /home 디렉토리만 'special'이었습니다.
간단한 수정: mariadb systemd 서비스 파일 편집(debian의 경우 이 파일은/lib/systemd/system/mariadb.service코드 검색:
# Prevent accessing /home, /root and /run/user
ProtectHome=true
및 세트ProtectHome=false.
다른 디렉토리에 문제가 있는 경우(/usr,/boot,/etc), 확인하다ProtectSystem선택.또한 에 문제가 있는 경우/tmp- 확인PrivateTmp.
문서: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
OpenSuSe LEAP 42.3을 사용하고 있습니다.
나는 로 바뀌었다./etc/my.cnf.d/secure_file_priv.cnf부터
secure_file_priv = /var/lib/mysql-files
로.
secure_file_priv = /var/lib/mysql
폴더/var/lib/mysql-files존재하지 않습니다. 이것이 이유입니다.
이것이 최선의 솔루션인지는 모르겠지만 Linux(Ubuntu 20.04.4 LTS, MariaDB: 10.6.7-MariaDB)에서 작동했습니다.
최상위 디렉토리에 폴더를 작성합니다.
/sudo mkdir mysql변경은 하기 위한 허가이다
0777sudo chmod 0777 mysql소유권 변경
mysqlsudo chown mysql:mysql mysql에서 권한을 변경합니다.
.cnf파일sudo gedit /etc/mysql/mariadb.conf.d/50-server.cnf행을 에 추가합니다.
[mysqld]부분secure-file-priv = /mysqlmysql 서비스를 재시작합니다.
sudo systemctl restart mysql.serviceCSV 파일로 테이블을 내보냅니다.
SELECT * INTO OUTFILE '/mysql/fileName.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM tableName;
이것으로 테이블을 csv 파일로 내보냈습니다.
언급URL : https://stackoverflow.com/questions/46174064/failed-to-normalize-the-argument-for-secure-file-priv
'programing' 카테고리의 다른 글
| Firebase 스토리지, vue 앱으로 이미지 검색 (0) | 2022.11.08 |
|---|---|
| 웹 페이지 로드 및 실행 순서 (0) | 2022.11.08 |
| 키=>값 배열을 JavaScript에 저장하는 가장 좋은 방법? (0) | 2022.10.30 |
| 예외를 올바르게 무시하는 방법 (0) | 2022.10.30 |
| Java에서의 ClassCast Exception 설명 (0) | 2022.10.30 |