spring boot 配置 redis 报错 NOAUTH Authentication required | 您所在的位置:网站首页 › jedis链接配置验证 › spring boot 配置 redis 报错 NOAUTH Authentication required |
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
at redis.clients.jedis.Protocol.processError(Protocol.java:127)
at redis.clients.jedis.Protocol.process(Protocol.java:161)
at redis.clients.jedis.Protocol.read(Protocol.java:215)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340)
at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239)
at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.java:2139)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:108)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:874)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:417)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:346)
at redis.clients.util.Pool.getResource(Pool.java:49)
报这个错误说明: 1.redis设置的有密码 2.项目没有读取到redis的密码 可能的情况: 1、检查项目是否配置密码,但客服端访问时没有设置密码。如果没有配置密码就在Spring boot的application.properties中配置redis密码: # Redis服务器连接密码(默认为空) #spring.redis.password=superman2、在Spring boot的application.properties中配置正确的redis密码后,很有可能还是无法访问,或者刚开始能访问,后面又不能访问了。 解决方案两个: 一、简单粗暴的解决: 去掉redis服务器的密码,解决一切烦恼。 在redis文件夹里面找到配置文件:redis.conf或者redis.windows.conf以及redis.windows-service.conf。在到配置文件里面找到requirepass xxx 注释掉。 # requirepass superman二、文明的解决方案: 原因是这个配置在JedisConnectionFactory中没有被加载进去。 可以在代码中设置的reids密码如下: @Bean JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setPassword("superman"); return factory; } 重新启动项目,密码就能被正常获取到。 |
CopyRight 2018-2019 实验室设备网 版权所有 |