Redis服务停止报错解决方案[NOAUTH Authentication required]

 centos 服务器 安装redis后 启用外网连接

给redis.conf 文件修改参数

//绑定外网 如果是指定ip连接 可以使用空格隔开多个ip   bind 127.0.0.1 192.168.3.3

bind 0.0.0.0         
#bind 127.0.0.1
//使用密码连接

requirepass newpassword

protected-mode no

修改完成后使用如下命令启动服务
redis-server    ../etc/redis.conf 

这时服务可以正常启动,但是使用service redis stop  停止服务是报错 NOAUTH Authentication required  
这是查看服务依然运行中

[root]# ps -ef|grep redis
root 6977 1 0 09:48 ? 00:00:00 /usr/local/redis/bin/redis-server 0.0.0.0:6379
root 7025 6865 0 10:03 pts/0 00:00:00 grep --color=auto redis
[root]# pgrep redis
6977

这些修改按如下标红处增加密码变量 并再停止服务时 增加指定密码的参数 -a $RedisPwd

vim /etc/init.d/redis 

 1 REDISPORT=6379
 2 EXEC=/usr/local/redis/bin/redis-server
 3 REDIS_CLI=/usr/local/redis/bin/redis-cli
 4    
 5 PIDFILE=/var/run/redis.pid
 6 CONF="/usr/local/redis/etc/redis.conf"
 7 RedisPwd=newpassword 
8
9 case "$1" in 10 start) 11 if [ -f "$PIDFILE" ]; then 12 echo "$PIDFILE exists, process is already running or crashed" 13 else 14 echo -n "Starting Redis server..." 15 $EXEC $CONF 16 if [ "$?"="0" ]; then 17 echo " done" 18 else 19 echo " failed" 20 fi 21 fi 22 ;; 23 stop) 24 if [ ! -f "$PIDFILE" ]; then 25 echo "$PIDFILE does not exist, process is not running" 26 else 27 PID=$(cat $PIDFILE) 28 echo "Stopping Redis server..." 29 $REDIS_CLI -a $RedisPwd -p $REDISPORT shutdown 30 if [ "$?"="0" ]; then 31 echo " done" 32 else 33 echo " failed" 34 fi 35 fi 36 ;; 37 restart) 38 ${0} stop 39 ${0} start 40 ;; 41 kill) 42 echo "force kill redis server..." 43 killall redis-server 44 if [ "$?"="0" ]; then 45 echo " done" 46 else 47 echo " failed" 48 fi 49 ;; 50 status) 51 if [ -f "$PIDFILE" ]; then 52 echo "Redis server is running." 53 else 54 echo "Redis server is stopped." 55 fi 56 ;; 57 *) 58 echo "Usage: /etc/init.d/redis {start|stop|restart|status|kill}" >&2 59 exit 1 60 esac

 

这是再次使用停止服务命令,正常执行无报错。

 

 

posted @ 2019-06-21 10:10  fsl  阅读(3067)  评论(0编辑  收藏  举报