如何解决redis的NOAUTH Authentication required异常
作者:珍惜时间简单生活
前言
最近学习中需要使用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中重启服务,并且一定要指定配置文件,否则你在配置文件所修改的配置并不会生效。
希望能帮到大家。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。