redis啟動報錯Can‘t?open?the?log?file:?No?such?file?or?directory
問題描述
在使用docker-compose安裝redis的時候,啟動失敗,提示無法開發(fā)日志文件,這主要是容器中沒有對應(yīng)的日志文件造成的,另一點(diǎn)就是對應(yīng)的日志文件沒有相應(yīng)權(quán)限所導(dǎo)致
異常信息如下所示
*** 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日志文件指的是容器中的文件,千萬別理解為宿主機(jī)中的路徑,如果你在宿主機(jī)創(chuàng)建此文件并授權(quán),最后結(jié)果也是一樣的,理解這一點(diǎn)很重要。
相關(guān)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 # 時區(qū)設(shè)置 volumes: - /etc/localtime:/etc/localtime:ro # 時區(qū)設(shè)置 - ./data:/data # redis 數(shù)據(jù)存儲目錄 - ./redis.conf:/etc/redis.conf # redis配置文件 ports: - "6379:6379"
為了方面隨時修改redis配置,所以將配置文件進(jìn)行了映射
redis中日志文件的配置項(xiàng)如下:
# 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配置注釋掉或者設(shè)置為空就可以了,但是這樣就不會輸出日志了,如果有問題需要排查就不方面了。
方案二
在宿主機(jī)的./data目錄下創(chuàng)建redis.log文件并授予權(quán)限,當(dāng)前redis安裝的絕對路徑為/home/local/docker/redis
以下都是指的相對路徑
touch data/redis.log chmod 777 data/redis.log 修改日志相關(guān)配置,這樣容器中就會自動創(chuàng)建日志文件并授予權(quán)限了 logfile "/data/redis.log" 重新構(gòu)建并查看日志應(yīng)該都正常了 docker-compose up --build -d docker logs redis
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于redis實(shí)現(xiàn)的點(diǎn)贊功能設(shè)計思路詳解
點(diǎn)贊是我們現(xiàn)在經(jīng)常見到的一個效果,如朋友圈、微博都有點(diǎn)贊的效果,下面這篇文章主要跟大家分享了基于redis實(shí)現(xiàn)的點(diǎn)贊功能設(shè)計思路的相關(guān)資料,文中介紹的非常詳細(xì),對大家實(shí)現(xiàn)點(diǎn)贊功能具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-05-05詳解如何利用Redis實(shí)現(xiàn)生成唯一ID
隨著下單流量逐漸上升,為了降低數(shù)據(jù)庫的訪問壓力,需要通過請求唯一ID+redis分布式鎖來防止接口重復(fù)提交。今天我們就一起來看探討一下,如何通過服務(wù)端來完成請求唯一?ID?的生成2022-11-11Redis Redisson lock和tryLock的原理分析
這篇文章主要介紹了Redis Redisson lock和tryLock的原理分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04K8S部署Redis(單機(jī)、集群)的超詳細(xì)步驟
redis是一款基于BSD協(xié)議,開源的非關(guān)系型數(shù)據(jù)庫(nosql數(shù)據(jù)庫)這篇文章主要給大家介紹了關(guān)于K8S部署Redis(單機(jī)、集群)的超詳細(xì)步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05