redis每次启动和关闭,要执行相关命令,有时候手写容易出错,或是长期没有碰她,一时间可能忘记了命令。所以,今天我就在
/redis/bin
安装装目录下新建了一个启动脚本run..sh
,编写如下内容,来便捷地启动和关闭redis服务。
前言
脚本文件run.sh
内容如下:
#!/bin/bash
if [[ -n "$1" ]] ; then
action=$1
fi
if [ "$action" == "start" ] ;then
echo "welcome,coder!"
./redis-server ./redis.conf
echo "redis is running"
exit 1
fi
if [ "$action" == "stop" ] ;then
./redis-cli shutdown
echo "goodbye!"
exit 1
fi
./run.sh start
命令启动redis服务没有问题,可是当我执行./run.sh stop
指令来关闭redsi服务的时候,就会抛出:NOAUTH Authentication required
错误。
[root@localhost bin]# ./run.sh stop //命令控制redis关闭服务
(error) NOAUTH Authentication required.
[root@localhost bin]#
正文
当redis设置了密码,但是没有登录,然后执行如redis-cli shutdown
等命令时,就可能抛出NOAUTH Authentication required
错误。甚至可能连GET
、SET
这种常见的命令执行也会抛错。如下图:
[root@localhost bin]# ./redis-cli //进入redis客户端
127.0.0.1:6379> GET NUM //获取key为NUM的值
(error) NOAUTH Authentication required.
127.0.0.1:6379>
解决办法很简单,即去授权:
127.0.0.1:6379> auth "123456" //123456为配置文件 requirepass 字段值
OK
127.0.0.1:6379> GET NUM
"0"
127.0.0.1:6379>
现在我们 退出redis客户端。执行如下命令关闭redis服务:
127.0.0.1:6379> exit //退出redis客户端
[root@localhost bin]# ./redis-cli shutdown //命令控制redis关闭服务
(error) NOAUTH Authentication required.
[root@localhost bin]#
依然会抛错。那怎么办呢?可以执行如下命令来代替:
./redis-cli -a "123456" -p 6379 shutdown //“123456” 为 requirepass 字段值 ,6379 为端口
解决方案
所以,我的问题题就解决了,重新定义编写run.sh
脚本如下:
#!/bin/bash
if [[ -n "$1" ]] ; then
action=$1
fi
if [ "$action" == "start" ] ;then
echo "welcome,coder!"
./redis-server ./redis.conf
echo "redis is running"
exit 1
fi
if [ "$action" == "stop" ] ;then
./redis-cli -a "123456" -p 6379 shutdown # 代替./redis-cli shutdown
echo "goodbye!"
exit 1
fi
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15994.html