无法打开RDB文件...只读文件系统

Ben*_*Ben 5 linux redis

我正在尝试在我的redis实例上执行save或bgsave以运行备份/恢复过程.我尝试保存时遇到错误:

532:M 28 Jun 23:58:30.396 # Failed opening the RDB file backup.rdb (in server root dir /var/lib/redis) for saving: Read-only file system
Run Code Online (Sandbox Code Playgroud)

/var/lib/redis文件夹的权限:

$@/var/lib$ ls -artl | grep redis
drwxrwxrwx  3 redis    redis    4096 Jun 28 23:58 redis
Run Code Online (Sandbox Code Playgroud)

/var/lib文件夹的权限:

$@/var$ ls -artl | grep lib
drwxrwxrwx 31 root root  4096 Jun 28 23:44 lib
Run Code Online (Sandbox Code Playgroud)

/var文件夹的权限:

$@/$ ls -artl | grep var
drwxrwxrwx  11 root root  4096 Jul 18  2016 var
Run Code Online (Sandbox Code Playgroud)

Redis CLI输出config get dir:

1) "dir"
2) "/var/lib/redis"
Run Code Online (Sandbox Code Playgroud)

Redis CLI输出config get dbfilename:

1) "dbfilename"
2) "backup.rdb"
Run Code Online (Sandbox Code Playgroud)

来自redis的错误:

532:M 28 Jun 23:58:30.396 # Failed opening the RDB file backup.rdb (in server root dir /var/lib/redis) for saving: Read-only file system
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

alm*_*mel 14

您需要将以下内容添加到/ etc/systemd/system/redis-server单元文件中:

ReadWriteDirectories=-/var/lib/redis

请注意,这/var/lib/redis是默认设置,但如果您/etc/redis/redis.conf在其中设置了不同的dir配置选项,则需要设置ReadWriteDirectories为该选项.

  • 在Ubuntu 16.04中,单元文件位于`/ etc/systemd/system/redis.service` (4认同)
  • 我发现了这个问题,事实证明此解决方案并不完全正确,请查看此答案以获取正确的方法:https://serverfault.com/a/943335/498459 (3认同)
  • 不要编辑默认单元文件。而是使用“sytemctl edit”创建一个插件。 (2认同)

小智 0

错误显示只读文件系统 因此,请检查文件系统的挂载(/或/var),如果是只读,请以rw模式(读写模式)重新挂载FS。挂载前请备份重要数据。