【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稳定的有序遍历的方式

相关推荐

  1. Redis Pub/Sub: 实时消息传递完美解决方案

    2024-06-11 04:24:02       26 阅读
  2. Redis 常见问题及解决方案

    2024-06-11 04:24:02       29 阅读
  3. Ubuntu 18.04上安装和保护Redis方法

    2024-06-11 04:24:02       7 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-11 04:24:02       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-11 04:24:02       5 阅读
  3. 在Django里面运行非项目文件

    2024-06-11 04:24:02       4 阅读
  4. Python语言-面向对象

    2024-06-11 04:24:02       6 阅读

热门阅读

  1. C++线程

    2024-06-11 04:24:02       15 阅读
  2. HOT100与剑指Offer

    2024-06-11 04:24:02       20 阅读
  3. 游戏心理学Day10

    2024-06-11 04:24:02       14 阅读
  4. 使用EFCore和Linq查询语句封装复杂的查询结果

    2024-06-11 04:24:02       19 阅读
  5. Python爬虫实现“自动重试”机制的方法(1)

    2024-06-11 04:24:02       13 阅读
  6. OpenAI 发布的 GPT-4o是什么,有什么功能?

    2024-06-11 04:24:02       18 阅读