银河麒麟V10sp1服务器系统安装redis不能使用的快速解决办法

我们在适配时,经常需要安装redis,但是在银河麒麟 V10sp1 服务器系统上安装使用 redis 的时候会有诸多问题,今天我们就来逐步分析解决一下。

1. 配好外网,使用麒麟源安装redis:

先在源里搜索一下redis,查看是否有该软件包:

[root@172-17-102-254 ~]# yum search redis

Last metadata expiration check: 1:46:38 ago on 2020年12月11日 星期五09时55分08秒.

================================================================================ Name Exactly Matched: redis =================================================================================

redis.aarch64 : A persistent key-value database

=============================================================================== Name & Summary Matched: redis ================================================================================

pcp-pmda-redis.aarch64 : Redis PCP metrics

rsyslog-hiredis.aarch64 : Redis support for rsyslog

hiredis-devel.aarch64 : Development files for hiredis

hiredis.aarch64 : A minimalistic C client library for the Redis database

python2-redis.noarch : The Python2 interface to the Redis key-value store

python3-redis.noarch : The Python3 interface to the Redis key-value store

确认有后,我们就可以开始安装了:

yum install redis.aarch64

2. 启动服务

[root@172-17-102-254 ~]# systemctl start redis

Job for redis.service failed because the control process exited with error code.

See "systemctl status redis.service" and "journalctl -xe" for details.

发现服务启动失败。

3. 查看服务和日志,定位问题

我们先来看服务的状态,看能不能获取到相关信息:

[root@172-17-102-254 ~]# systemctl status redis.service

●redis.service - Redis persistent key-value database

Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)

Active: failed (Result: exit-code) since Fri 2020-12-11 13:40:56 CST; 3min 44s ago

Process: 10223 ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd (code=exited, status=217/USER)

Main PID: 10223 (code=exited, status=217/USER)

12月11 13:40:56 172-17-102-254 systemd[1]: Starting Redis persistent key-value database...

12月11 13:40:56 172-17-102-254 systemd[1]: redis.service: Main process exited, code=exited, status=217/USER

12月11 13:40:56 172-17-102-254 systemd[1]: redis.service: Failed with result 'exit-code'.

12月11 13:40:56 172-17-102-254 systemd[1]: Failed to start Redis persistent key-value database.

查看状态没有获取到特别有用的信息,我们再来看系统日志/var/log/messages,发现有两处报错:

a.没有日志路径,不能打开日志文件

redis-server[23358]: *** FATAL CONFIG FILE ERROR ***

redis-server[23358]: Reading the configuration file, at line 171

redis-server[23358]: >>>'logfile /var/log/redis/redis.log'

redis-server[23358]:Can't open the log file: No such file or directory

发现系统/var/log/下没有redis目录,手动创建一个:

[root@172-17-102-254 ~]# mkdir -p /var/log/redis

b.跟redis的systemd服务的用户相关

systemd[10355]: redis.service: Failed to determine user credentials: No such process

systemd[10355]: redis.service: Failed at step USER spawning /usr/bin/redis-server: No such process

我们再来看一下redis的systemd服务:

[root@172-17-102-254 ~]# cat /lib/systemd/system/redis.service

[Unit]

Description=Redis persistent key-value database

After=network.target

[Service]

ExecStart=/usr/bin/redis-server /etc/redis.conf --supervised systemd

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 ~]#useradd redis -s /usr/sbin/nologin

并且,把刚刚创建的日志目录的属组改成redis:root:

[root@172-17-102-254 ~]#chown -R redis:root /var/log/redis

再来重启服务:systemctl restart redis,发现还是启动失败,继续看messages日志,发现有这一句:

redis-server[10631]: 10631:C 11 Dec 14:15:22.548 # Fatal error,can't open config file '/etc/redis.conf'

查看发现,redis的配置文件/etc/redis.conf的属组是root,我们将其改为redis:root。

[root@172-17-102-254 ~]#chown redis:root /etc/redis.conf

继续重启服务:systemctl restart redis,还是失败,而且系统日志messages里没有提供有效信息,有点头大。我们再来看下 /var/log/redis/redis.log,发现有一句报错:

Can't chdir to '/var/lib/redis': No such file or directory

我们来手动创建一下该目录,并修改属组:

[root@172-17-102-254 ~]# mkdir -p /var/lib/redis

[root@172-17-102-254 ~]# chown -R redis:root /var/lib/redis

继续重启服务:systemctl restart redis,发现终于启动成功了,而且能正常使用。

4. 总结

要在银河麒麟v10sp1服务器系统上安装使用redis,有以下几个步骤需要祚:

a. 添加好redis用户,并指定shell为nologin

useradd redis -s /usr/sbin/nologin

b. 配好外网,使用银河麒麟软件源安装redis:

c. 创建redis的日志目录,并修改属组为redis:root:

mkdir -p /var/log/redis

chown -R redis:root /var/log/redis

d. 创建redis的库目录,并修改属组为redis:root:

mkdir -p /var/lib/redis

chown -R redis: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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在麒麟V10服务器上编译安装Storm的详细过程

    1 简介 Apache Storm是一个免费开源.分布式.高容错的实时计算系统,可以用来处理大量的数据,类似于Hadoop.Apache Storm是用Java和Clojure写的. 2 准备工作 源码下载地址: https://github.com/apache/storm 这里下载了1.1.0版本进行验证: 1.1.0 https://archive.apache.org/dist/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz 验证环境

  • zabbix-agent在麒麟V10上的安装过程

    1.安装包下载 下载地址:https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/ 2.安装 #增加zabbix用户并设置为不可登录状态 shell > useradd -r -s /sbin/nologin zabbix #将下载包上传到麒麟V10服务器上后解压 shell >tarzxf zabbix-3.0.22.tar.gz shell > cd zabbix-3.0.22 shell >

  • VMware Workstation安装(Linux内核)银河麒麟图文教程

    本文为大家分享了VMware Workstation安装银河麒麟,供大家参考,具体内容如下 1.下载软件:VMware Workstation Kylin-x86_64.iso(Linux内核)银河麒麟系统镜像包. 2.安装完成VMware Workstation并运行. 3.创建新的虚拟机. 4.选中"典型",下一步. 5.安装程序光盘映像文件(浏览--文件存放路径),下一步. 6.虚拟机中安装操作系统选择Linux,下一步. 7.输入虚拟机名称,下一步. 8.默认操作,下一步. 9

  • 开源数据库postgreSQL13在麒麟v10sp1源码安装过程详解

    一.中标麒麟v10sp1在飞腾2000+系统安装略 二.系统依赖包安装 [root@ft2000db opt]# yum install bzip* [root@ft2000db opt]# nkvers ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Tercel) Kernel: 4.19.90-17.ky10.aarch64 Buil

  • 银河麒麟V10sp1服务器系统安装redis不能使用的快速解决办法

    我们在适配时,经常需要安装redis,但是在银河麒麟 V10sp1 服务器系统上安装使用 redis 的时候会有诸多问题,今天我们就来逐步分析解决一下. 1. 配好外网,使用麒麟源安装redis: 先在源里搜索一下redis,查看是否有该软件包: [root@172-17-102-254 ~]# yum search redis Last metadata expiration check: 1:46:38 ago on 2020年12月11日 星期五09时55分08秒. ===========

  • Redis 出现错误1067的解决办法

    Redis 出现错误1067的解决办法 一.问题描述: 在Windows启动Redis服务时,发生如下错误: Windows无法启动Redis服务(位于本地计算机上). 错误1067:进程意外终止. 在Windows CMD命令行启动时提示: D:\soft\Redis>redis-server.exe redis.windows.conf [9560] 15 Jul 10:33:32.364 # Creating Server TCP listening socket 192.168.100.

  • python 服务器运行代码报错ModuleNotFoundError的解决办法

    一.问题描述 一段 Python 代码在本地的 IDE 上运行正常,部署到服务器运行后,出现了 ModuleNotFoundError: No module named 'xxx' 错误. 二.问题原因 在代码中引入了其他文件的包(自己写的包,非 pip 安装的),问题出在 import 那行语句. 错误的原因是因为路径的原因,服务器端的路径和我们本地的路径不一样显示. 三.解决示例 要解决这个问题,可以在自己代码的顶端加入以下代码: import sys import os sys.path.

  • 有星外虚拟主机管理系统下MSSQL2005服务器因重装改名后出错的解决办法

    出错信息为: "sys.servers 中找不到服务器 'BBB'.请验证指定的服务器名称是否正确.如果需要,请执行存储过程 sp_addlinkedserver 以将服务器添加到 sys.servers." 或为: "此游标不包括正在修改的表,或该表不能通过此游标更新. " 原因是因为装系统后改过计算机的名称,原来的名称是"AAA",新的计算机名是"BBB" 解决方法: 第一步: 打开SQL Server Managemen

  • 不错的服务器变慢的两种非常规解决办法

    对于网站来说,流量是追求,但是对于站长来说,服务器速度才是根本.没有一个站长会容忍自己的服务器变慢,同样,我作为服务器维护人员,当服务器变慢的时候,就会非常的着急. 从我最近两次解决服务器变慢的问题来看,有时候很难想到服务器变慢会因为这些原因.下面给大家介绍一下,希望某一天你服务器变慢的时候能够想到这个思路! 服务器变慢非常规解决方法一 场景:    在网通机房托管了一台服务器,百M独享.花了很多钱,当然是为了创造更高的价值,这个服务器主要是用来做视频点播.但是从托管之日起,从未感受到100M独

  • 利用redis实现分布式锁,快速解决高并发时的线程安全问题

    实际工作中,经常会遇到多线程并发时的类似抢购的功能,本篇描述一个简单的redis分布式锁实现的多线程抢票功能. 直接上代码.首先按照慣例,给出一个错误的示范: 我们可以看看,当20个线程一起来抢10张票的时候,会发生什么事. package com.tiger.utils; public class TestMutilThread { // 总票量 public static int count = 10; public static void main(String[] args) { sta

  • Redis高并发问题的解决方法

    本文讲述了Redis高并发问题的解决办法.分享给大家供大家参考,具体如下: redis为什么会有高并发问题 redis的出身决定 redis是一种单线程机制的nosql数据库,基于key-value,数据可持久化落盘.由于单线程所以redis本身并没有锁的概念,多个客户端连接并不存在竞争关系,但是利用jedis等客户端对redis进行并发访问时会出现问题.发生连接超时.数据转换错误.阻塞.客户端关闭连接等问题,这些问题均是由于客户端连接混乱造成. 同时,单线程的天性决定,高并发对同一个键的操作会

  • 服务器的MSDTC不可用解决办法

    MSDTC(分布式交易协调器),协调跨多个数据库.消息队列.文件系统等资源管理器的事务.该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server.该服务用于管理多个服务器 . 位置:控制面板--管理工具--服务--Distributed Transaction Coordinator 依存关系:Remote Procedure Call(RPC)和Security Accounts Manager 建议

  • CentOS系统安装Redis及Redis的PHP扩展详解

    redis简介 redis是一款很不错的高性能的key-value数据库,它的出现在很大程度上弥补了很多像memcached这类的keyvalue存储的不足,它的特点有:支持持久化.半持久化数据保存.支持主从同步.value值支持多种类型等等.下面来一起看看在CentOS系统安装Redis及Redis的PHP扩展的详细介绍. 1.安装Redis 1.1 如果没有安装wget,安装wget yum install wget 1.2 在http://redis.io/download页面查看redi

随机推荐