项目场景:
启动redis之后,无法关闭redis服务
报错信息有三个:
1、(error) ERR Errors trying to SHUTDOWN. Check logs.
2、Could not create server TCP listening socket 127.0.0.1:6379: bind: Address already in use
3、Failed opening the RDB file dump.rdb (in server root dir /usr/local/bin) for saving: Permission denied
Error trying to save the DB, can’t exit.
问题描述
问题1:
出现这个错误首先要确定,生效的redis-config文件中,是否有配置logfile的设置,如果没有优先设置该位置。
问题2:
因为之前的服务由于没有办法shutdowm掉,一直在启动着,导致没有办法重启redis服务,此时需要通过kill -9 进程号
来杀死,然后再重新进行启动服务。
问题3:
由于当前的权限不够,所以需要修改文件夹权限。
解决方案:
问题1解决:
- 配置日志文件(修改redis.conf):
logfile “/usr/local/bin/redis-log.log”
#启动服务时,会自动创建该文件
- 给日志文件授予权限,否则无法写入
chmod 777 /usr/local/bin/redis-log.log
问题2解决:
通过kill -9 进程号
:可以杀死进程号对应的进程,然后再次进行重启
重启之后,又报错了第三个问题
问题3解决:
根据提示信息,可以看到是权限问题
操作结束之后,再重新启动服务,shutdown就可以关闭redis服务了
辅助
1、 ls -la 可以查看权限
2、 cat /usr/local/bin/redis-log.log 在修改好日志之后,再有报错信息,要去看日志。