银河麒麟V10sp1服务器系统安装redis不能使用的快速解决办法
我们在适配时,经常需要安装redis,但是在银河麒麟V10sp1服务器系统上安装使用redis的时候会有诸多问题,今天我们就来逐步分析解决一下。
1.配好外网,使用麒麟源安装redis:
先在源里搜索一下redis,查看是否有该软件包:
[root@172-17-102-254~]#yumsearchredis
Lastmetadataexpirationcheck:1:46:38agoon2020年12月11日星期五09时55分08秒.
================================================================================NameExactlyMatched:redis=================================================================================
redis.aarch64:Apersistentkey-valuedatabase
===============================================================================Name&SummaryMatched:redis================================================================================
pcp-pmda-redis.aarch64:RedisPCPmetrics
rsyslog-hiredis.aarch64:Redissupportforrsyslog
hiredis-devel.aarch64:Developmentfilesforhiredis
hiredis.aarch64:AminimalisticCclientlibraryfortheRedisdatabase
python2-redis.noarch:ThePython2interfacetotheRediskey-valuestore
python3-redis.noarch:ThePython3interfacetotheRediskey-valuestore
确认有后,我们就可以开始安装了:
yuminstallredis.aarch64
2.启动服务
[root@172-17-102-254~]#systemctlstartredis
Jobforredis.servicefailedbecausethecontrolprocessexitedwitherrorcode.
See"systemctlstatusredis.service"and"journalctl-xe"fordetails.
发现服务启动失败。
3.查看服务和日志,定位问题
我们先来看服务的状态,看能不能获取到相关信息:
[root@172-17-102-254~]#systemctlstatusredis.service
●redis.service-Redispersistentkey-valuedatabase
Loaded:loaded(/usr/lib/systemd/system/redis.service;disabled;vendorpreset:disabled)
Active:failed(Result:exit-code)sinceFri2020-12-1113:40:56CST;3min44sago
Process:10223ExecStart=/usr/bin/redis-server/etc/redis.conf--supervisedsystemd(code=exited,status=217/USER)
MainPID:10223(code=exited,status=217/USER)
12月1113:40:56172-17-102-254systemd[1]:StartingRedispersistentkey-valuedatabase...
12月1113:40:56172-17-102-254systemd[1]:redis.service:Mainprocessexited,code=exited,status=217/USER
12月1113:40:56172-17-102-254systemd[1]:redis.service:Failedwithresult'exit-code'.
12月1113:40:56172-17-102-254systemd[1]:FailedtostartRedispersistentkey-valuedatabase.
查看状态没有获取到特别有用的信息,我们再来看系统日志/var/log/messages,发现有两处报错:
a.没有日志路径,不能打开日志文件
redis-server[23358]:***FATALCONFIGFILEERROR***
redis-server[23358]:Readingtheconfigurationfile,atline171
redis-server[23358]:>>>'logfile/var/log/redis/redis.log'
redis-server[23358]:Can'topenthelogfile:Nosuchfileordirectory
发现系统/var/log/下没有redis目录,手动创建一个:
[root@172-17-102-254~]#mkdir-p/var/log/redis
b.跟redis的systemd服务的用户相关
systemd[10355]:redis.service:Failedtodetermineusercredentials:Nosuchprocess
systemd[10355]:redis.service:FailedatstepUSERspawning/usr/bin/redis-server:Nosuchprocess
我们再来看一下redis的systemd服务:
[root@172-17-102-254~]#cat/lib/systemd/system/redis.service
[Unit]
Description=Redispersistentkey-valuedatabase
After=network.target
[Service]
ExecStart=/usr/bin/redis-server/etc/redis.conf--supervisedsystemd
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
可以看到,redis.service服务是用redis用户来启动的,然而查看了/etc/passwd和/etc/shadow文件,都没有redis用户的记录,我们来手动创建一个redis用户,并指定shell为/usr/sbin/nologin:
[root@172-17-102-254~]#useraddredis-s/usr/sbin/nologin
并且,把刚刚创建的日志目录的属组改成redis:root:
[root@172-17-102-254~]#chown-Rredis:root/var/log/redis
再来重启服务:systemctlrestartredis,发现还是启动失败,继续看messages日志,发现有这一句:
redis-server[10631]:10631:C11Dec14:15:22.548#Fatalerror,can'topenconfigfile'/etc/redis.conf'
查看发现,redis的配置文件/etc/redis.conf的属组是root,我们将其改为redis:root。
[root@172-17-102-254~]#chownredis:root/etc/redis.conf
继续重启服务:systemctlrestartredis,还是失败,而且系统日志messages里没有提供有效信息,有点头大。我们再来看下/var/log/redis/redis.log,发现有一句报错:
Can'tchdirto'/var/lib/redis':Nosuchfileordirectory
我们来手动创建一下该目录,并修改属组:
[root@172-17-102-254~]#mkdir-p/var/lib/redis [root@172-17-102-254~]#chown-Rredis:root/var/lib/redis
继续重启服务:systemctlrestartredis,发现终于启动成功了,而且能正常使用。
4.总结
要在银河麒麟v10sp1服务器系统上安装使用redis,有以下几个步骤需要祚:
a.添加好redis用户,并指定shell为nologin
useraddredis-s/usr/sbin/nologin
b.配好外网,使用银河麒麟软件源安装redis:
c.创建redis的日志目录,并修改属组为redis:root:
mkdir-p/var/log/redis chown-Rredis:root/var/log/redis
d.创建redis的库目录,并修改属组为redis:root:
mkdir-p/var/lib/redis chown-Rredis:root
e.确认以下redis的配置文件/etc/redis.conf的属组是否为redis:root
另外,经过测试发现,如果你想要把redis的服务以后台进程daemon的方式运行,可以修改配置文件/etc/redis.conf,把其中的daemonize的选项由no改为yes,并且/lib/systemd/system/redis.service文件里Type选项由notify改为forKing,systemd的分析,这里就不做过多介绍了。
总而言之,要仔细看配置文件,碰到问题,需要多看日志文件来解决问题。
到此这篇关于银河麒麟V10sp1服务器系统安装redis不能使用的快速解决办法的文章就介绍到这了,更多相关麒麟V10sp1服务器安装redis内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!