ProgramingTip

MYSQL을 outfile로 "액세스가 거부되었습니다."-내 사용자는 "모든"액세스 권한을 가지고 있고 CHMOD 777입니다.

bestdevel 2020. 11. 3. 08:24
반응형

MYSQL을 outfile로 "액세스가 거부되었습니다."-내 사용자는 "모든"액세스 권한을 가지고 있고 CHMOD 777입니다.


어떤 아이디어?

SELECT * INTO OUTFILE '/home/myacnt/docs/mysqlCSVtest.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '*'
LINES TERMINATED BY '\n'
FROM tbl_property 
WHERE managerGroupID = {$managerGroupID}

오류 :

Access denied for user 'asdfsdf'@'localhost' (using password: YES)

다음 SQL 명령을 실행 해 처리합니다.

> grant all privileges 
  on YOUR_DATABASE.* 
  to 'asdfsdf'@'localhost' 
  identified by 'your_password';
> flush privileges; 

데이터베이스에 연결하는 데 문제가 있고 한 폴더에 쓰지 않는 것들이 있습니다.

또한 FILE사용자 에게 부여했음을 확인하십시오 'asdfsdf'@'localhost'.

> GRANT FILE ON *.* TO 'asdfsdf'@'localhost';

솔직히 나는 보조금을 다루지 갑자기 고 일시적 없이도 작동했습니다.

echo "select * from employee" | mysql --host=HOST --port=PORT --user=UserName --password=Password DATABASE.SCHEMA > output.txt

@fijaaron이 말했듯이,

  1. GRANT ALL 암시하지 않는다 GRANT FILE
  2. GRANT FILE 만 작동 *.*

그래서

GRANT FILE ON *.* TO user;

cP / WHM이 PHPMyAdmin에서 루트 권한으로 사용자 권한을 수정하는 기능을 제거하기 때문에 명령 줄을 사용하여 다음을 수행해야합니다.

mysql>  GRANT FILE ON *.* TO 'user'@'localhost';

2 단계는 해당 사용자가 특정 폴더에 파일을 지정하는 것입니다. 앞으로 수행하는 몇 가지 방법이 결국 폴더를 넣었습니다.

/home/user/tmp/db

chown mysql:mysql /home/user/tmp/db

그러면 mysql 사용자가 파일을 찾을 수 있습니다. 이전 포스터에서 말했듯이 MySQL 임시 폴더도 사용할 수 있습니다. 정말 중요하지 않지만 세상이 데이터를 볼 수 없지 않는 한 0777 (세계 쓰기 가능) 만들고 싶지는. INTO OUTFILE파일이 존재하면 작동하지 않습니다. 프로세스를 헹구고 반복하려는 경우 오류 가 있습니다. 다른 사용자가 파일을 소유 한 경우 시도 만하면 unlink($file)작동하지 않습니다. 당신이 나와 같다면 (0777에 대한 편집증) 다음을 사용하여 디렉토리를 찾을 수 있습니다.

chmod($dir,0777)

SQL 명령을 수행하기 직전에

chmod($dir,0755)

바로 내부 unlink(file)파일을 삭제합니다. 이렇게하면 웹 사용자가 모두 실행하고 mysql 사용자를 호출 할 필요가 없습니다.

참고 URL : https://stackoverflow.com/questions/6091427/mysql-into-outfile-access-denied-but-my-user-has-all-access-and-the-fold

반응형