redis 报错 "CONFIG REWRITE failed: Permission denied"

无意中看到了redis的config rewrite这个命令。闲来无聊,所以打算自己做个实验。下面的文章是redis关于config rewrite的描述信息:

CONFIG REWRITE 命令对启动 Redis 服务器时所指定的 redis.conf 文件进行改写: 因为 CONFIG SET 命令可以对服务器的当前配置进行修改, 而修改后的配置可能和 redis.conf 文件中所描述的配置不一样, CONFIG REWRITE 的作用就是通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中。

重写会以非常保守的方式进行:

  • 原有 redis.conf 文件的整体结构和注释会被尽可能地保留。
  • 如果一个选项已经存在于原有 redis.conf 文件中 , 那么对该选项的重写会在选项原本所在的位置(行号)上进行。
  • 如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为默认值, 那么重写程序不会将这个选项添加到重写后的 redis.conf 文件中。
  • 如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为非默认值, 那么这个选项将被添加到重写后的 redis.conf 文件的末尾。
  • 未使用的行会被留白。 比如说, 如果你在原有 redis.conf 文件上设置了数个关于 save 选项的参数, 但现在你将这些 save 参数的一个或全部都关闭了, 那么这些不再使用的参数原本所在的行就会变成空白的。

即使启动服务器时所指定的 redis.conf 文件已经不再存在, CONFIG REWRITE 命令也可以重新构建并生成出一个新的 redis.conf 文件。

另一方面, 如果启动服务器时没有载入 redis.conf 文件, 那么执行 CONFIG REWRITE 命令将引发一个错误。

在上面redis的描述中,我们在线更改redis.conf配置文件的时候,执行config rewrite将在线更改的redis.conf配置同步应用到读取的配置文件中。

实验步骤:

1.config get maxclients

2.config set maxclients "100000"

3.config rewrite

ERR CONFIG REWRITE failed: Permission denied

发现执行config rewrite命令错误,一开始的时候怀疑是因为权限的原因。

https://github.com/arioch/puppet-redis/commit/09f52cfda45ecd04f42b05f1b37b1e3a36154cd5

执行更改权限的命令:

chown redis:redis /etc/redis.conf

更改权限之后,继续在线执行config rewrite,发现还是不行,然后再redis的官方文档查看这个config rewrite这个命令信息,可以得到:

CONFIG REWRITE is also able to rewrite the configuration file from scratch if the original one no longer exists for some reason. However if the server was started without a configuration file at all, the CONFIG REWRITE will just return an error.

https://redis.io/commands/config-rewrite

上述描述可以比较明显的得到就是redis 启动的没有指定配置文件的时候,执行这个命令是会报错的。所以只有在启动redis的时候指定redis.conf之后才能执行这个命令。

时间: 2024-07-29 15:38:51

redis 报错 "CONFIG REWRITE failed: Permission denied"的相关文章

thinkphp5访问报错 ...with message 'mkdir(): Permission denied' in... 或...failed to open stream: Permission denied' in...

报错截图1: 报错截图2: 报错原因没有权限访问thinkphp5/runtime目录. 解决方法: 1.如果thinkphp5/runtime目录下面有文件,先清空thinkphp5/runtime目录: 2.修改thinkphp5/runtime目录权限为可读可写. thinkphp5访问报错 ...with message 'mkdir(): Permission denied' in... 或...failed to open stream: Permission denied' in.

salt-call报错OSError: [Errno 13] Permission denied: '/root/.gvfs'

今天通过salt获取磁盘信息,并且通过return到mysql,但是发现表里面少了点minion的信息,然后经查看,都是一些新的ibm x3650 m4的机器 然后在saltstack的源码找到了status.diskusage的实现,先看看是怎么实现的磁盘使用量吧,下面是源码 ret = {} for path in selected: fsstats = os.statvfs(path) blksz = fsstats.f_bsize available = fsstats.f_bavail

linux报错-bash: ./xx.sh: Permission denied

linux报错-bash: ./xx.sh: Permission denied 在linux下执行sh文件时提示: -bash: ./xx.sh: Permission denied 进行授权: chmod 777 xx.sh Linux chmod +755和chmod +777 区别: 755 代表用户对该文件拥有读,写,执行的权限, 同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样. 777代表,user,group ,others ,都有读写和可执行权限.

Github克隆项目的时候报错:[email protected]: Permission denied (publickey).解决方法

问题 Github克隆项目的时候报如下错: [email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rightsand the repository exists. 从上面报出的错误提示可以知道在克隆项目时没有权限所以被拒绝了,Github 服务器和我们本地的通讯要使用 S

Nginx报错403 forbidden (13: Permission denied)的解决办法

由于开发需要,在本地环境中配置了LNMP环境,使用的是Centos 6.5 的yum安装,安装一切正常,但是由于默认网站文件夹比较奇葩,于是把网站文件用mv命令移动到了新的目录,并相应修改了配置文件,并重启Nginx. 那么好,问题来了!本以为重启就OK了.居然报个“403 is forbidden“的错误..查看/var/log/nginx/error.log日志显示:xxx 403 forbidden (13: Permission denied)错误.我勒个去~ 引起nginx 403 f

Tomcat 启动报错 java.net.BindException: Permission denied :80

Tomcat一启动就报如下错误: Caused by: java.net.BindException: Permission denied <null>:80 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:410) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640) at org.apache.coyote.

linux挂载文件报错mount error(13): Permission denied

本人是通过xshell5连接远程虚拟机linux后,在xshell5端进行挂载windows下的文件夹出现以下错误:mount error(13): Permission deniedRefer to the mount.cifs(8) manual page (e.g. man mount.cifs) 挂载命令mount -t cifs -o username=用户名,password=密码 //172.x.x.x/project /mnt/project (根据不同ip修改自己的) 方法:一

PHP session_start() open failed: Permission denied session 无法使用的问题

日志显示报错如下: PHP message: PHP Warning: session_start(): open(/var/lib/php/session/sess_tbh109lbvm6lu8cm7pr31ik, O_RDWR) failed: Permission denied (13) in /home/domain.com/html/index.php on line 2 报错显示无法打开 seesion 文件,没有权限,所以需要给 /var/lib/php/session/ 添加权限

升级到macOS 10.12 mysqlb报错ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)

系统升级到macOS 10.12后启动mysql后,在终端输入mysql 报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决办法1 在系统偏好设置里关闭mySQL2 $ cd /usr/bin3 $ sudo mysqld_safe --skip-grant-tables4 再打开一个终端$ mysqlmysql> use mysql;mysql> UPDATE