本地连接虚拟机中Redis出现的问题(远程连接redis)

最近一段时间都在做谷粒学院,一直没有好好整理知识点,昨晚刚好在做项目的时候使用了Redis作为缓存的中间件,但是出现了无法访问到虚拟机上Redis的问题,今天对这个问题的解决方法做了个小小的整理。

由于我的虚拟机版本是ubuntu,所以下面涉及的一些命令可能和centos虚拟机的命令不太一样。

Ubuntu系统版本可以通过 uname -v命令查询,一般高版本都是向下兼容的,低版本的可能本篇文章的方法会失效。

在这里插入图片描述
错误显示

(error) DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. 

解决方法

配置文件修改

首先要进入到Redis的安装目录中,如果忘记安装位置,可以通过find命令搜索。Redis的配置文件名为redis.conf,可以通过以下命令搜索

find / -name redis.conf

执行该命令需要获取权限,可以在命令前面加上 sudo 或者 直接通过 sudo su 进入超级用户模式。
在这里插入图片描述
搜索后我们可以看到配置文件的路径,那么这个目录哪呢?在桌面上通过ls查看目录会发现根本不存在这个目录,这里涉及到Linux的目录结构,具体的可以查阅相关资料,这里只要输入cd /回车之后就能进入到root目录中。之后就能找到usr文件夹,根据搜索到的路径进入。
在这里插入图片描述
在这里插入图片描述
找到配置文件后,自己选择编辑器打开,我的虚拟机上使用的是vim编辑器。输入vim redis.conf打开配置文件,为了防止修改配置文件出错,最好提前拷贝一份配置文件。

编辑器搜索功能命令 /搜索内容,比如输入/ protected-mode搜索到之后按esc键,然后输入 i表示进入编辑模式,修改完成后,按esc,然后输入英文的:wq,表示保存并退出。
在这里插入图片描述
修改的内容

打开配置文件把下面对应的注释掉,否则只允许在虚拟机本地访问Redis数据库。

bind 127.0.0.1  

附:这里如果不生效的话,可以注释掉之后,在这行下面输入 bind 0.0.0.0 表示允许所有IP访问。如何判断是否修改成功,可以在启动Redis后,通过ps -ef|grep redis查看redis相关进程,如下图,如果没修改成功,会显示127.0.0.1:6379,如果修改成功生效后就是 *:6379

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dlaWMYO-1654054955609)(C:\Users\86135\AppData\Roaming\Typora\typora-user-images\1654051762988.png)]

Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no。

daemonize no 

关闭保护模式

protected-mode no

修改完配置文件后,一定要重启Redis(关键)

首先要停止Redis服务端,可以在窗口中通过crtl + c关闭,或者通过kill -9 进程号(pid)进行关闭。

然后在配置文件目录中输入redis-server redis.conf重新启动Redis,注意一定要在该目录中通过配置文件启动,不能在其他窗口通过Redis-server启动,这样配置文件是不会生效的。

端口防火墙

注意Redis默认端口是6379,然后防火墙把本地的防火墙和虚拟机的防火墙都关闭。下面的Linux中防火墙操作的相关命令。

# 开启防火墙
ufw enable
# 重启防火墙
ufw reload
# 关闭防火墙
ufw disable
# 查看端口开启状态
ufw status
# 开启某个端口, 这里表示开启 6379 端口
ufw allow 6379
# 关闭某个端口
ufw delete allow 6379

查询Linux系统的IP可以通过ifconfig命令进行查询。

ssh服务

ssh服务一般我们在安装虚拟机的时候会默认安装,因此可以直接启动,如果不能启动的,可以自己手动安装,相关命令如下。

// 安装命令
apt-get install ssh

apt-get install openssh-server

// 启动 SSHD 服务
service sshd start 

其他问题

密码修改

Redis数据库的密码也是在配置文件Redis.conf中进行修改,默认是没有密码的。 通过/requirepass 命令搜索,可以把注释去掉,自行设置密码。

一般来说把配置文件按照上面方法进行配置都能解决远程连接Redis的问题,如果还存在其他问题无法访问,可能是虚拟机的网络配置或者是本地电脑的问题,可以通过Ping命令测试或者查阅其他方法进行解决。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值