Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
redis服务失败,追加文件的权限被拒绝_Redis - Fatal编程技术网

redis服务失败,追加文件的权限被拒绝

redis服务失败,追加文件的权限被拒绝,redis,Redis,My redis服务(从源代码处安装)失败,出现/var/log/redis.log 2309:C 16 Mar 2019 20:16:10.633 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=2309, just started 2309:C 16 Mar 2019 20:16:10.633 # Configuration loaded 2311:M 16 Mar 2019 20:16:10.634 # Ca

My redis服务(从源代码处安装)失败,出现
/var/log/redis.log

2309:C 16 Mar 2019 20:16:10.633 # Redis version=5.0.3, bits=64, commit=00000000, modified=0, pid=2309, just started
2309:C 16 Mar 2019 20:16:10.633 # Configuration loaded
2311:M 16 Mar 2019 20:16:10.634 # Can't open the append-only file: Permission denied
但是

root@redis:~# sudo su - redis
redis@redis:~$ touch /var/lib/redis/foobar.txt
redis@redis:~$ echo $?
0
这是我的
/etc/redis.conf

root@redis:~# cat /etc/redis.conf 
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
dir /var/lib/redis
daemonize yes
logfile "/var/log/redis.log"
这是我为redis定制的单位文件

root@redis:~# cat /etc/systemd/system/redis.service 
Description=Redis In-Memory Data Store                       
After=network.target                                         

[Service]                                                    
Type=forking                                                 
User=redis                                                   
Group=redis                                                                                
PermissionsStartOnly=true                                                              
ExecStop=/bin/kill -s TERM $MAINPID
PIDFile=/var/run/redis/redis-server.pid
ExecStart=/opt/redis-stable/src/redis-server /etc/redis.conf
Restart=always                                               
RestartSec=3                                                 
LimitNOFILE=65535
ReadWriteDirectories=-/var/lib/redis
ReadOnlyDirectories=/
ReadWriteDirectories=-/var/lib/redis
ReadWriteDirectories=-/var/log/redis
ReadWriteDirectories=-/var/run/redis



[Install]                                                    
WantedBy=multi-user.target  

错误是redis无法写入仅附加的文件。默认情况下,仅附加文件位于从中启动redis的目录中

我猜redis用户在从中启动的位置没有写访问权限。只需确保您从redis用户有权访问的工作目录启动redis即可


要阅读有关AOF文件的更多信息,请查看文档:。

redis作为非根目录服务启动,因此您需要在启动服务之前调整数据目录的权限

您只需执行以下命令:

sudo chown -R 1001:1001 redis-data/
并重新启动redis

-已知问题
-我仍然无法弄清楚如何让它在kubernetes上工作,但我已经通过
/etc/redis.conf
中的指令
dir/var/lib/redis
指示redis将只附加的文件放在那里;作为
redis
用户,我设法在那里创建了一个文件;嗯……我不知道,但肯定是文件权限错误。尝试将
dir
指令更改为其他目录,并尝试在其他目录中启动。哪个用户是1001?为什么是1001?