1. 程式人生 > 實用技巧 >Java呼叫Redis出現 “ERR Client sent AUTH, but no password is set” 解決辦法

Java呼叫Redis出現 “ERR Client sent AUTH, but no password is set” 解決辦法

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)

【問題原因】
1、Redis伺服器沒有設定密碼,但客戶端向其傳送了AUTH(authentication,身份驗證)請求。

2、Redis啟動時候,沒有指定配置檔案進行啟動。

【解決辦法】

1、檢視Redis配置檔案,是否設定密碼。

1)windows下找到Redis目錄下 redis.windows.conf 檔案,用文字編輯工具開啟檔案,找到“requirepass”,去掉註釋設定密碼。

2)Linux下找到到Redis目錄下redis.conf檔案,vim命令,編輯requirepass 的對應值。

2、Redis啟動時候,必須指定配置檔案進行啟動(這個非常重要)

1)windows下啟動Redis,進入到Redis安裝目錄,輸入 redis-server.exe redis.windows.conf

2)Linux下啟動Redis,也需要指定Redis配置檔案redis.conf

後臺啟動:nohup /usr/local/redis/bin/redis-server redis.conf &
或/usr/local/redis/bin/redis-server redis.conf

重啟啟動Redis後,再次啟動java應用就正常訪問不報異常了。