Redis aof/rdb/auth/主从复制失效 Warning: no config file specified, using the default config

背景描述

在学习redis的过程中,发现配置好redis.confdir后仍然不能实现数据持久化,始终不能生成dump.rdbappendonly.aof,后续在学习主从复制的过程中,配置好replicaof masterip maserport后仍然不能够实现主从复制。此外,配置的requirepass 也失效了,无需通过auth即可操作redis.

注意

在后文的描述中,省略了redis.conf的所有配置,如bind,requirepass,replicaof,masterauth,关于这些配置读者可自行搜索或者评论区提问

问题排查

经反复确认配置项无误,最后发现问题在于:启动redis时,并没有加载自己配置的redis.conf而是使用了默认的配置文件,这种情况下,启动的redis是相当于没有做任何配置的,这也解释了为什么前面的所有配都失效了
在这里插入图片描述

问题解决

通过执行redis_init_script(默认名称为这个)脚本来启动redis

service redis_init_script start

当然,前置步骤为修改该脚本的相关内容(需要连接正确的redis.conf路径),并将其放在/etc/init.d目录下在这里插入图片描述

这样之后,先通过ps -ef|grep redis来检测redis是否成功启动,如果启动成功,再通过redis-cli进入redis查看是否需要密码验证,如果需要,那么可以证明已经加载到正确配置文件。
在这里插入图片描述
这时候再在设置的dir下,也就有了对应的持久化文件
在这里插入图片描述

前面设置的主从复制情况也可以通过在redis-cli下执行info replication来验证了
在这里插入图片描述

如果发生执行service redis_init_script start后依然不能成功启动redis的情况,可以先尝试下reboot命令重启服务器。

另外如果发生

/var/run/redis_6379.pid exists, process is already running or crashed

错误那么直接rm -rf /var/run/redis_6379.pid 再启动redis吧。

最后

这一块的排查和解决笔者花了较长时间,如果在过程中遇到其他问题,可评论区提问


版权声明:本文为yuancheng224原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。