打算尝试一波JAVA链接Jedis客户端来通过命令行操作redis,结果出了以下问题。
Java链接Redis时出现 “ERR Client sent AUTH, but no password is set” 异常的原因及解决办法
【错误提示】
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:53)
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226)
at cn.hncu.RedisPool.getJedis(RedisPool.java:66)
at cn.hncu.RedisJava.main(RedisJava.java:15)
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:868)
【问题原因】
Redis服务器没有设置密码,但客户端向其发送了AUTH(authentication,身份验证)请求。可能是你修改的配置并不是系统默认的,所以无论你怎么修改也没用。
【解决办法】
确定Redis启动时指定是哪个配置文件。
如果我们不设置,启动的是默认的。这里我们手动设置下启动哪个配置文件。