当前位置 : 主页 > 编程语言 > java >

如何解决redis的NOAUTH Authentication required异常

来源:互联网 收集:自由互联 发布时间:2021-05-13
前言 最近学习中需要使用redis,于是在window上安装了一个redis(其实是我搞不好虚拟机和本地连接,于是放弃了虚拟机安装redis)。一开始使用还很正常,也没有设置密码,按照网上所说

前言

最近学习中需要使用redis,于是在window上安装了一个redis(其实是我搞不好虚拟机和本地连接,于是放弃了虚拟机安装redis)。一开始使用还很正常,也没有设置密码,按照网上所说的启动服务,然后打开可视化工具RedisDesktopManager,连接上了,在java中使用也正常。但是第二天的重启电脑的时候,运行java连接程序却在怎么也连不上。显示

NOAUTH Authentication required

需要密码认证的异常。

到网上查了一下有人说是配置文件中的requiredpassword没有注释掉,我去看了一下,已经注释了,觉得应该不是这个问题。
下面就是我的解决办法了:

方法一:使用密码

首先我在可视化工具里面加上密码,比如root,其他的跟之前连接都没有什么区别,然后竟然就连接上了,虽然有点摸不到头脑,但是确实解决了。
然后剩下就是如何在java中也加入这个,大概代码是这样的,

JedisShardInfo shardInfo = new JedisShardInfo("redis://localhost:6379/9");//这里是连接的本地地址和端口
    shardInfo.setPassword("root");//这里是密码
    Jedis jedis = new Jedis(shardInfo);
    jedis.connect();

然后就连接上了,java这边也能正常使用。

方法二:不使用密码(推荐)

当然还有不设密码的方式。这就需要去配置文件中去看requiredpassword,是否被注释,如果没有,就把他注释了。

然后重点来了,如果只是简单的在redis的目录中启动服务redis-server.exe是不够的,因为这样启动并不会指定配置文件(这里是win的情况, linux的情况不清楚)。所以我们需要先关闭redis服务,然后在cmd进入redis的解压目录中重启服务,并且指定配置文件。命令是这样的:

redis-server.exe redis.windows.conf

如果你想使用密码,首先在配置文件中将requiredpassword的注释删去,然后在requiredpassword处写上自己的密码,最后需要在cmd中重启服务,并且一定要指定配置文件,否则你在配置文件所修改的配置并不会生效。

希望能帮到大家。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

网友评论