诡异事件:天翼云主机CentOS8.2配置RedisServer5.0.3无法启动
诡异事件:天翼云主机CentOS8.2配置Redis5.0.3无法启动
·
先说来龙去脉哈:
安装完redis,没有设置开机启动,可以正常登录:
info:
Redis Login: redis-cli --no-auth-warning -h 127.0.0.1 -p 6379 -a 'password'
install Redis successfully
之后修改了两次密码,正确操作是在redis.conf里修改requirepass,但事后反思时发现此时开始诡异了
$ vi /etc/redis.conf
#文件打开为空
$ sudo vi /etc/redis.conf
#再次root权限打开,发现文件仍然为空,当时大意认为读取的配置文件路径有问题
#着急要修改redis密码,于是先登录redis,用config set requirepass修改了密码。
#登录redis
#登录redis
$ redis-cli --no-auth-warning -h 127.0.0.1 -p 6379 -a 'password'
#查看redis密码
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "password"
#修改redis密码
127.0.0.1:6379> config set requirepass NewPassword
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "NewPassword"
接着一顿正常操作,设置服务开机启动,重启服务,接着杯具发生,Redis服务报错:
$ sudo systemctl start redis.service
[sudo] password for cl:
Job for redis.service failed because the control process exited with error code.
See "systemctl status redis.service" and "journalctl -xe" for details.
$ sudo systemctl status redis.service
● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor p>
Drop-In: /etc/systemd/system/redis.service.d
└─limit.conf
Active: failed (Result: exit-code) since Sun 2022-02-06 11:27:45 CST; 2mi>
Process: 4782 ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised>
Main PID: 4782 (code=exited, status=1/FAILURE)
Feb 06 11:27:45 vm12345.novalocal systemd[1]: Starting Redis persistent key->
Feb 06 11:27:45 vm12345.novalocal systemd[1]: redis.service: Main process ex>
Feb 06 11:27:45 vm12345.novalocal systemd[1]: redis.service: Failed with res>
Feb 06 11:27:45 vm12345.novalocal systemd[1]: Failed to start Redis persiste>
事后分析,服务报错跟修改密码无关,但仍无法解释原因故记录为诡异事件。
接下来是解决问题的正确7姿势:
1. 找日志
#万变不离其宗,解决异常一定要先找日志
#查看日志
$ sudo vi /var/log/messages
Feb 6 11:27:45 systemd[1]: Starting Redis persistent key-value database
Feb 6 11:27:45 redis-server[4782]: FATAL CONFIG FILE ERROR
Feb 6 11:27:45 redis-server[4782]: Reading the configuration file, at line 171
Feb 6 11:27:45 redis-server[4782]: >>> 'logfile /var/log/redis/redis.log'
Feb 6 11:27:45 redis-server[4782]: Can't open the log file: Permission denied
Feb 6 11:27:45 systemd[1]: redis.service: Main process exited, code=exited, status=1/FAILURE
Feb 6 11:27:45 systemd[1]: redis.service: Failed with result 'exit-code'.
Feb 6 11:27:45 systemd[1]: Failed to start Redis persistent key-value database.
2. 改配置
##根据日志找到/etc/redis.conf,此时打开文件就正常显示内容
$ sudo vi /etc/redis.conf
##找到配置文件的第171行,注释
#logfile /var/log/redis/redis.log
##重启redis服务正常
注释有问题的配置行,redis服务正常,故推测该文件权限不足,无法写入报错。
再次验证:
##观察推测该文件权限不足,无法写入报错
$ sudo ls /var/log/redis/redis.log -al
-rw-r--r-- 1 root root 2897 Feb 6 11:22 /var/log/redis/redis.log
##修改写入权限
$ sudo chmod 666 /var/log/redis/redis.log
##检查文件写入权限
$ sudo ls /var/log/redis/redis.log -al
-rw-rw-rw- 1 root root 2897 Feb 6 11:22 /var/log/redis/redis.log
##再次开启刚注释的171行
$ sudo vi /etc/redis.conf
##重启服务正常
3. 登录redis正常
#登录redis正常
$ redis-cli --no-auth-warning -h 127.0.0.1 -p 6379 -a 'NewPassword'
127.0.0.1:6379>
回顾:
事情发生前后,没有做权限设置的误操作,为何第一次能正常写入日志,重启服务后又失败。
觉得诡异,暂记录于此。
更多推荐
已为社区贡献2条内容
所有评论(0)