[REDIS] 레디 스 : 저장하는 오프닝 .rdb 실패 : 권한이 거부
REDIS레디 스 : 저장하는 오프닝 .rdb 실패 : 권한이 거부
나는 레디 스 서버 2.8 우분투 우분투 12.04에 apt-get을 사용하여 설치되어 있습니다.
나는 다른 데이터베이스에서 dump.rdb을 복사 한. 나는 새 서버를 시작하려고 지금 때, 나는 끊임없이 얻을 :
[35763] 04 Mar 01:51:47.088 * 1 changes in 900 seconds. Saving...
[35763] 04 Mar 01:51:47.088 * Background saving started by pid 43313
[43313] 04 Mar 01:51:47.088 # Failed opening .rdb for saving: Permission denied
나는이 문제를 어떻게 해결할 수 있습니까?
해결법
-
==============================
1.당신은 DIR 및 dbfilename의 권한을 확인하려면 redis.conf 파일을 확인해야합니다. 경로에있는 dbfilename에 지정된 파일이 디렉토리 경로에 지정된 경우 존재하고 권한 오른쪽에 있습니다. 다음 문제가 해결되어야한다.
당신은 DIR 및 dbfilename의 권한을 확인하려면 redis.conf 파일을 확인해야합니다. 경로에있는 dbfilename에 지정된 파일이 디렉토리 경로에 지정된 경우 존재하고 권한 오른쪽에 있습니다. 다음 문제가 해결되어야한다.
이 의지 도움말 사람을 바랍니다.
추신
redis.conf 파일 위치를 찾으려면 #ps 도끼를 사용할 수 있습니다 | GREP은 확인 레디 스. 보통은 입력 파일로 레디 스 서버로 전달됩니다.
디렉터리 권한의 경우 :이 755이어야의 dbfilename를 들어, 644해야
때때로 당신은 또한 사용자 여부를 확인하기 위해 top 명령을 사용할 필요가 다음 레디 스 서버 및 디렉토리의 소유자 그룹은 일치한다. 레디 스하지만, 디렉토리는 루트 아래에있다 : 즉 레디 스 서버는 레디 스에 의해 실행되는 루트. 이 경우 대한 Chown 레디 스 필요 : 레디 스 -R 디렉토리.
-
==============================
2.메시지 : 나를 위해 일한 위 .. 내가 그렇게 BGSAVE에 관련되는 주변의 모든 사람을 본 적이 ...하지만 당신은 생산에 있지있는 동안, SAVE이 방법 당신에게 더 정직하고 답을 제공의 비. 당신이 로그를 검사하지 않는 BGSAVE은하지 않습니다.
메시지 : 나를 위해 일한 위 .. 내가 그렇게 BGSAVE에 관련되는 주변의 모든 사람을 본 적이 ...하지만 당신은 생산에 있지있는 동안, SAVE이 방법 당신에게 더 정직하고 답을 제공의 비. 당신이 로그를 검사하지 않는 BGSAVE은하지 않습니다.
게시물 수십 파고 후 나는 어떤 단서를 찾지 못했습니다. 즉, 고정 유일한 것은 레디 스 서비스를 중지하고 수동으로 실행되었다.
처음에 나는 그것이 실행 된 레디 스를 대신하여 사용자에게 관련이있을 수 있다고 생각. 모든시 : 실제 차이 망할이었다 systemd 서브 시스템 레디 스의 구성 서비스 파일 (/etc/systemd/system/redis.service)의 어떤 시점에서 다음이 있던 :
ReadWriteDirectories: -/etc/redis
와우 슈퍼 냉각! 이 권한이 완벽하게 할 수있는 모든에도 불구하고시 시스템에 어디서든 액세스 레디 스를 방지했다 끝났다.
어떻게 내 순진 해당 권한이 뭔가를 보장하기 위해 충분히라고 생각했다 적절한 권한을 .. (예, 나는 아이러니 해요).
-
==============================
3.내 권한 문제가 상위 폴더를 수정할 수 없습니다되는 레디 스 사용자의 결과가 될 듯 (은 / var / lib 디렉토리 / 레디 스 / 6379) 임시 파일을 생성하는 목적.
내 권한 문제가 상위 폴더를 수정할 수 없습니다되는 레디 스 사용자의 결과가 될 듯 (은 / var / lib 디렉토리 / 레디 스 / 6379) 임시 파일을 생성하는 목적.
이것은 레디 스 서버 프로세스의 strace를 볼되었다 :
open("temp-1833.rdb", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES (Permission denied)
이 문제는 다음 명령을 실행 한 후 해결되었습니다 :
setfacl -m d:u:redis:rwX,u:redis:rwX /var/lib/redis/6379
-
==============================
4.당신의 redis.conf의 구성 'dbfilename'를 확인합니다. 프로세스를 실행하는 레디 스의 경로에 쓰기 권한이 없습니다.
당신의 redis.conf의 구성 'dbfilename'를 확인합니다. 프로세스를 실행하는 레디 스의 경로에 쓰기 권한이 없습니다.
-
==============================
5.윈도우 전용 : 이것은 사용자가 이에 대한 권한이없는 것을 의미한다. 이 파일의 기본 소유자 (문서에 따라) 변화에 매우 제한된 액세스 및 필요를 가지고 네트워크 서비스입니다
윈도우 전용 : 이것은 사용자가 이에 대한 권한이없는 것을 의미한다. 이 파일의 기본 소유자 (문서에 따라) 변화에 매우 제한된 액세스 및 필요를 가지고 네트워크 서비스입니다
해결책 :
-
==============================
6.내 경우에는 모든 권한은 (가장 응시 대답은 나에게 도움이되지 않습니다 I 평균 있음) 정확했다. 그러나! 레디 스 파일에 잘못된 경로를 사용했다. config (설정) 그것은 정확하지만, 레일 - CLI에서이 '/ proc 디렉토리'돌아왔다. 이 대답은 나에게 도움이 - https://serverfault.com/questions/800295/redis-spontaneously-failed-failed-opening-rdb-for-saving-permission-denied
내 경우에는 모든 권한은 (가장 응시 대답은 나에게 도움이되지 않습니다 I 평균 있음) 정확했다. 그러나! 레디 스 파일에 잘못된 경로를 사용했다. config (설정) 그것은 정확하지만, 레일 - CLI에서이 '/ proc 디렉토리'돌아왔다. 이 대답은 나에게 도움이 - https://serverfault.com/questions/800295/redis-spontaneously-failed-failed-opening-rdb-for-saving-permission-denied
경고
정확한 질문의 경우는 문제가되지 않지만, 누군가가 서버를 해킹처럼 내 상황을 보았다. 설명 링크. 그래서 제대로 설정을 확인하십시오.
-
==============================
7.내 /lib/system/systemd/redis-server.service 파일은 다음을 포함 :
내 /lib/system/systemd/redis-server.service 파일은 다음을 포함 :
ReadOnlyDirectories=/ ReadWriteDirectories=-/var/lib/redis
내 /etc/redis/redis.conf 파일은 데이터베이스 / 데이터 / 레디 스에 위치해야한다고 언급
dir /data/redis
효과적으로 위의 systemd 설정 파일 데이터가 / 읽기 전용 레디 스 / 수 있습니다.
나는 redis.conf 파일을 변경하면 읽기 :
dir /var/lib/redis
나는 오류가 중단되었습니다.
-
==============================
8.감독 systemd는 유형으로 만 구성 = 포크 (fork) = 유형과 데몬으로 예에 해당한다 통지된다.
감독 systemd는 유형으로 만 구성 = 포크 (fork) = 유형과 데몬으로 예에 해당한다 통지된다.
sudo는이 /etc/systemd/system/redis.service왔다
이 서비스 파일 편집 유형을 참조 = 포크 (fork)
[Unit] Description=Redis In-Memory Data Store After=network.target [Service] User=redis Type=forking Group=redis ExecStart=/usr/bin/redis-server /etc/redis/redis.conf ExecStop=/usr/bin/redis-cli shutdown Restart=always [Install] WantedBy=multi-user.target
이 파일을 엽니 다
sudo는이 /etc/redis/redis.conf왔다
여기에 이러한 변경 사항을 추가
daemonize yes supervised no
-
==============================
9.사람이 다시 발생 그냥 최신 버전으로 레디 스 설치를 업그레이드 문제 업그레이드가없는 경우. 나는 레디 스 2.8.15로이 문제가 발생하고,이 글을 쓰는 시점에 사용할 수있었습니다 레디 스 2.8.22로 업그레이드. 내 회사의 시스템 관리자는이 레디 스 2.8.15 버그라고 나를 안심하고 문제는 업그레이드 후 멀리 갔다.
사람이 다시 발생 그냥 최신 버전으로 레디 스 설치를 업그레이드 문제 업그레이드가없는 경우. 나는 레디 스 2.8.15로이 문제가 발생하고,이 글을 쓰는 시점에 사용할 수있었습니다 레디 스 2.8.22로 업그레이드. 내 회사의 시스템 관리자는이 레디 스 2.8.15 버그라고 나를 안심하고 문제는 업그레이드 후 멀리 갔다.
-
==============================
10.나는 마법처럼 일했다 Rails 애플리케이션, RF RM은 ./tmp/에 Sidekiq에 의해 사용되는 레디 스와 같은 문제가 있었다.
나는 마법처럼 일했다 Rails 애플리케이션, RF RM은 ./tmp/에 Sidekiq에 의해 사용되는 레디 스와 같은 문제가 있었다.
-
==============================
11./를 : 내 cmd를 행 세션이 다른 드라이브에서 실행중인 것을 깨달았 때까지 나는이에 약간의 시간을 보냈다. 이런 경우에 다른 사람이 힘 도움말 사람!
/를 : 내 cmd를 행 세션이 다른 드라이브에서 실행중인 것을 깨달았 때까지 나는이에 약간의 시간을 보냈다. 이런 경우에 다른 사람이 힘 도움말 사람!
-
==============================
12.로그 디렉토리에있는 잠금 파일은 나를 위해이 오류를 일으키는 것입니다. 나는 잠금 파일을 삭제하여 오류를 제거 할 수 있었다 :
로그 디렉토리에있는 잠금 파일은 나를 위해이 오류를 일으키는 것입니다. 나는 잠금 파일을 삭제하여 오류를 제거 할 수 있었다 :
RM은 / var / 로그 / 레디 스 / 잠금.
이 레디 스 여전히 실행되는 동안 다른 시스템이 하나에 복원되었을 때 일어났다.
from https://stackoverflow.com/questions/22160753/redis-failed-opening-rdb-for-saving-permission-denied by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 이니셜 라이저에서 cache_store 설정 (0) | 2019.12.31 |
---|---|
[REDIS] 데이터 구조 스레드 안전에 레디 스 작업은인가 (0) | 2019.12.31 |
[REDIS] StackExchange.Redis - LockTake / LockRelease 사용 (0) | 2019.12.31 |
[REDIS] 어떻게 레디 스에서 "HSET"아이의 키를 "EXPIRE"로? (0) | 2019.12.31 |
[REDIS] 어떻게 핸들 세션 레디 스를 내놓고 만료? (0) | 2019.12.31 |