redis启动报错Can‘t open the log file: No such file or directory
作者:鼠鼠我呀2
这篇文章主要介绍了redis启动报错Can‘t open the log file: No such file or directory问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
问题描述
在使用docker-compose安装redis的时候,启动失败,提示无法开发日志文件,这主要是容器中没有对应的日志文件造成的,另一点就是对应的日志文件没有相应权限所导致
异常信息如下所示
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 103
>>> 'logfile /var/log/redis/redis.log'
Can't open the log file: No such file or directory
原因分析
这个提示里面的/var/log/redis/redis.log日志文件指的是容器中的文件,千万别理解为宿主机中的路径,如果你在宿主机创建此文件并授权,最后结果也是一样的,理解这一点很重要。
相关docker-compse.yml
配置如下
version: '3' services: redis: hostname: redis image: redis:latest container_name: redis restart: unless-stopped command: redis-server /etc/redis.conf environment: - TZ=Asia/Shanghai # 时区设置 volumes: - /etc/localtime:/etc/localtime:ro # 时区设置 - ./data:/data # redis 数据存储目录 - ./redis.conf:/etc/redis.conf # redis配置文件 ports: - "6379:6379"
为了方面随时修改redis配置,所以将配置文件进行了映射
redis中日志文件的配置项如下:
# Specify the log file name. Also the empty string can be used to force # Redis to log on the standard output. Note that if you use standard # output for logging but daemonize, logs will be sent to /dev/null logfile "/var/log/redis/redis.log"
启动的时候就提示上述错误了,要解决这个问题有两种方案
解决方案
方案一
直接将redis.conf中的logfile配置注释掉或者设置为空就可以了,但是这样就不会输出日志了,如果有问题需要排查就不方面了。
方案二
在宿主机的./data目录下创建redis.log文件并授予权限,当前redis安装的绝对路径为/home/local/docker/redis
以下都是指的相对路径
touch data/redis.log chmod 777 data/redis.log 修改日志相关配置,这样容器中就会自动创建日志文件并授予权限了 logfile "/data/redis.log" 重新构建并查看日志应该都正常了 docker-compose up --build -d docker logs redis
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。