【Redis】解决 Redis 运行在 Protected Mode 下的 DENIED 错误:消除 Redis 受保护模式的完美方案

【Redis】解决 Redis 运行在 Protected Mode 下的 DENIED 错误:消除 Redis 受保护模式的完美方案

大家好 我是寸铁👊
总结了一篇【Redis】解决 Redis 运行在 Protected Mode 下的 DENIED 错误:消除 Redis 受保护模式的完美方案✨
喜欢的小伙伴可以点点关注 💝

## 前言

前言

今天在使用go程序远程连接redis客户端时
报错如下:Error getting value for key name: DENIED Redis is running in protected mode
这说明需要对redis执行某种魔法,使得可以远程连接到客户端,从而操作redis数据库。
下面笔者开始施展魔法,请跟着笔者一起挥动魔术棒!

具体报错如下:

Error getting value for key name: DENIED Redis is running in protected mode because protected mode is enabled and no password is set for the default user. In this mode connections are only accepted from the loopback
interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command ‘CONFIG SET protected-mode no’ from the loopback int
erface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternativel
y you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to ‘no’, and then restarting the server. 3) If you started the server manually just for testing
, restart it with the ‘–protected-mode no’ option. 4) Setup a an authentication password for the default user. NOTE: You only need to do one of the above things in order for the server to start accepting connections
from the outside.

在这里插入图片描述


解决方案

Step1

  • 先找到 redis.conf配置文件
find / -name redis.conf

如:我的配置文件在如下目录:
在这里插入图片描述

  • 之后再cd到所在的目录
cd /xx/redis-7.0.8/
  • 进入目录打开文件
vim redis.conf
  • 找到如下位置
bind 127.0.0.1
  • 修改为如下:
bind 0.0.0.0

这一步是使得不只是向本地开放redis连接,而是向外部开放,这样就可以远程连接了。

在这里插入图片描述


  • 再找到如下信息位置:
protected-mode yes

在这里插入图片描述


  • 修改内容如下:
protected-mode no

在这里插入图片描述

这一步是打开受保护模式,使得外部可以远程访问redis


  • 保存并退出

Step2

  • 重新加载服务端
nohup ./redis-server /root/redis-7.0.8/redis.conf  > /dev/null 2>&1 &

在这里插入图片描述


  • 查看redis-server的进程号
 ps aux | grep redis-server
  • 再将原有的带127.0.0.1:6379redis连接删除

使用如下命令:

kill -9 25633(替换为具体的进程号) 

在这里插入图片描述

Step3

  • 重新后台启动服务端,加载配置文件,确保配置生效。
 nohup ./redis-server /xx/redis-7.0.8/redis.conf  > /dev/null 2>&1 &

在这里插入图片描述

  • 再重新查看一下redis-server的进程号
ps aux | grep redis-server

在这里插入图片描述


Step4

  • 重新运行程序,远程连接redis

成功拿到keyvalue不报错,远程连接成功!

在这里插入图片描述

补充

如果说加载按照上面加载配置文件后,还是不能够远程连接,考虑开放防火墙端口。

1.查看防火墙是否已开启对6379端口的放行

#查看6379/tcp端口是否已开 开为yes 没开为no
firewall-cmd --zone=public --query-port=6379/tcp#查看系统所有开放的端口
firewall-cmd --zone=public --list-ports

在这里插入图片描述

no说明没开放

  1. 如果没放行,通过以下命令放行6379端口:
#配置防火墙,打开6379端口
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent

在这里插入图片描述

  • 重新启动防火墙
#重新启动防火墙
sudo systemctl restart firewalld.service

在这里插入图片描述


  • 再次查询开放是否生效
firewall-cmd --zone=public --query-port=6379/tcp

在这里插入图片描述

yes 说明开放成功生效!


看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕


往期好文💕

保姆级教程

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go-Zero】手把手带你在goland中创建api文件并设置高亮


报错解决

【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案

【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案

【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案

【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案


Go面试向

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain Agent(代理)技术分析与实践

LangChain代理是利用大语言模型和推理引擎执行一系列操作以完成任务的工具,适用于从简单响应到复杂交互的各种场景。它能整合多种服务,如Google搜索、Wikipedia和LLM。代理通过选择合适的工具按顺序执行任务,不同于链的固定路径。代理的优势在…

【YOLOv5进阶】——修改网络结构(以C2f模块为例)

一、站在巨人的肩膀上 这里我们借鉴YOLOv8源码: 上期说到,对于网络模块定义详情在common.py这个文件,如Conv、CrossConv、C3f等。本期要修改的需要参考YOLOv8里的C2f模块,它定义在YOLOv8的module文件夹的block.py文件里&#xf…

leetcode 43. 字符串相乘

题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 原题链接:https://leetcode.cn/problems/…

测试开发面经分享,面试七天速成

1. get、post、put、delete的区别 a. get请求: i. 用于从服务器获取资源。请求参数附加在URL的查询字符串中。 ii. 对服务器的请求是幂等的,即多次相同的GET请求应该返回相同的结果。 iii. 可以被缓存,可以被收藏为书签。 iv. 对于敏感数据不…

高考后的家庭移民新选择

随着高考的落幕,您是否在思考未来的更多可能性?移民,作为一种生活选择,为许多家庭提供了一个全新的生活和教育环境。我们理解,每个家庭都希望为自己的孩子提供最好的未来。 移民国家通常拥有多元和包容的教育体系&…

代理IP使用api接口

代理IP使用API接口,通常是指通过API接口获取代理IP地址,并将其应用于爬虫、数据采集、反爬虫等场景中,以提高数据采集效率和保护数据采集安全。 一般来说,代理IP提供商会提供API接口文档和SDK供开发者使用。你需要先注册并登录代…

嵌入式软件单元/集成测试工具TESSY功能、特点介绍

在当前的智能物联网时代,嵌入式软件测试越来越受到关注。 嵌入式软件的特点 首先,我们来快速了解一下嵌入式软件自身的特点。 嵌入式软件具有实时性、内存空间有限、I/O通道少,而且要求功耗低、高可靠性,对成本也比较敏感&…

四川蔚澜时代电子商务有限公司抖音电商服务怎么样?

随着数字经济的蓬勃发展,电商行业已成为推动经济增长的重要引擎。在这个充满变革与机遇的时代,四川蔚澜时代电子商务有限公司凭借对抖音电商的深入理解和专业服务,迅速崛起为行业的佼佼者,引领着潮流营销的新风尚。 四川蔚澜时代…

ARM32开发--串口库封装(初级)

知不足而奋进望远山而前行 目录 文章目录 前言 目标 内容 开发流程 文件目录创建 分组创建 接口定义 完整代码 总结 前言 在嵌入式软件开发中,封装抽取流程和抽取封装策略是非常重要的技术,能够提高代码的复用性和可维护性。本文将介绍如何在文…

这可能是最清晰易懂的 G1 GC 资料

滑动验证页面 概述 G1 (Garbage-First) 于JDK 6u14版本发布,JDK 7u4版本发行时被正式推出,在JDK9时已经成了默认的垃圾回收器,算是CMS回收器的替代 方案(CMS在JDK9以后已经废弃) G1是一款分代的 (generational)&a…

@并行计算和分布式计算解决方案

并行计算和分布式计算解决方案 文章目录 为什么需要并行计算为什么需要分布式计算常见的解决方案有哪些 为什么需要并行计算 需要最大化利用计算机资源,加速计算。 为什么需要分布式计算 单机资源不足或者单机加速不达标,需要联合多台计算机&#xff…

如何使用C++ STL标准模板库中的算法函数(附源码)

目录 1、概述 2、调用sort函数对列表元素进行排序 3、调用count_if查找满足条件的元素个数 4、调用find_if函数找到目标元素的信息 5、调用remove_copy_if函数搜索满足条件的多个元素 6、总结 VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.…

LeetCode刷题之HOT100之子集

2024/6/11 周二,闷热,很热。两天没有做题了,前天去附近一景点《十八重溪》游玩,去了才知道暂停开放,只能在附近转转了,瀑布是看不到了。昨天在宿舍呆了一天,今天早上起来就来了实验室。补三张图…

端午节,来看看这本应景的“龙舟书”吧!

大家端午安康呀图片~~ 端午节,不仅要吃粽子,还要看龙舟!图片 所以,今天就和大家分享一本“龙舟书”——《精进ChatGPT:高效应用实战88例》! 不仅和今天的端午节应景,还和当今的AI时代很配图片…

AI Agent 热门的10篇论文

人工智能代理领域广阔,涵盖广泛的主题,包括多代理系统、强化学习、上下文感知系统以及将大型语言模型 (LLMs) 集成到基于代理的系统中。以下是 arXiv 的一些顶级论文,涵盖了人工智能代理的各个方面: A Framework For Intelligent Multi Agent System Based Neural Network …

Python 基础语法详解(四)

Python 基础语法详解(四) Python 条件语句最简单的 if 语句基本的 if 语句实战: 复杂 if 语句实战: 看一看 elif 的好处题目:代码实现: 三元表达式格式为:实操: Python 条件语句 在…

Windows 托盘图标实现类封装及使用(附源码)

在系统桌面右下角的托盘区域,创建一个托盘图标,已经是很多软件的标配了,特别是IM即时通讯软件,要在托盘图标上显示来消息时的闪动头像。 其实托盘图标创建很简单,使用起来也比较方便,主要是调用Shell_NotifyIcon API函数,传入不同参数表示对应的操作: 1)NIM_AD…

synchronized 的底层实现

用户态与内核态 JDK 早期,synchronized 叫做重量级锁, 因为申请锁资源必须通过 kernel(指大多数操作系统的核心部分),系统调用。 ;hello.asm ;write(int fd, const void *buffer, size_t nbytes)section datamsg db …

数据结构(用 JS 实现栈和队列【三种方式】)

栈 先进后出 JS 实现栈 栈 : 用数组实现入栈 push ---- 时间复杂度 O(1)出栈 pop ---- 时间复杂度 O(1) let stack [];// 入栈 stack.push("a"); stack.push("b");console.log(stack);// 出栈 -- 先进后出 -- b 出栈 stack.pop();console.log(stack);队…