在此文中《Linux下安装配置Redis服务》,介绍了如何安装Redis和基本配置,其中使用了install_server.sh脚本,创建了一个服务脚本,可以方便的启动暂停。
不过,在使用过程中,发现会出现如下错误:(error) NOAUTH Authentication required
根据提示的意思应该是没有加验证参数,而实际上我确实为Redis加了连接密码(requirepass 参数)。
打开/etc/init.d/redis文件,查看下是如何restart的,其中摘出stop方法:
# stop 方法 stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown #此处使用redis-cli命令发送shutdown命令 while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;;
stop方法中使用了redis-cli发送shutdown命令,前面带了p参数,是我们自定义的端口,唯独少了密码参数,正确的应该是:
$CLIEXEC -p $REDISPORT -a $PASSWORD shutdown
加上a参数,后面跟上密码值,这个变量值值可以在文件开头定义好:
EXEC=/opt/programs/redis/redis-4.0.8/src/redis-server CLIEXEC=/opt/programs/redis/redis-4.0.8/src/redis-cli PIDFILE=/var/run/redis.pid CONF="/opt/programs/redis/conf/6379.conf" REDISPORT="6379" #加上此行 PASSWORD="password"
保存后,重启测试下。