英文:
Go and Redisgo: DialURL error: NOAUTH Authentication required
问题
我正在尝试使用Go和redigo连接到我的Redis服务器,使用的是在另一个使用lettuce编写的Java应用程序中有效的URI。在Go项目中,我遇到了以下错误:
> NOAUTH 需要身份验证。
我的redis.conf
文件中设置了requirepass true
,并且我在URI中传递了密码。以下是我的连接方式:
conn, err := redis.DialURL("redis://MySecurePassword@localhost:6666/0")
if err != nil {
log.Fatal("无法连接到Redis")
}
这里没有错误。当我尝试运行一个检索数据的命令时,出现了错误。
writeOrErr(&b, conn, "HGETALL", "mykey")
// 用于将结果写入缓冲区或报告错误的redis.Conn.Do的包装器
func writeOrErr(b *bytes.Buffer, conn redis.Conn, cmd string, key string) string {
result, err := conn.Do(cmd, key)
if err != nil {
// !!! 错误发生在这里 !!!
log.Fatalf("无法运行 %s \"%s\" | 错误: %s", cmd, key, err.Error())
}
// 检索数据
_, err = b.WriteString(result.(string))
if err != nil {
log.Fatal("无法将结果写入字符串中:" + key)
}
return result.(string)
}
我是否错误地使用了redigo的API?我该如何使其连接成功?
英文:
I'm trying to connect to my Redis server using Go and redigo with a URI that works on another application, written in Java with lettuce. On the Go project, I'm getting the error
> NOAUTH Authentication required.
My redis.conf
has requirepass true
, and I pass the password in the URI. Here's how I connect:
conn, err := redis.DialURL("redis://MySecurePassword@localhost:6666/0")
if err != nil {
log.Fatal("Not able to connect to Redis")
}
No errors there. The error shows when I try to run a command to retrieve data.
writeOrErr(&b, conn, "HGETALL", "mykey")
// Wrapper for redis.Conn.Do that writes the result to a buffer or reports the error
func writeOrErr(b *bytes.Buffer, conn redis.Conn, cmd string, key string) string {
result, err := conn.Do(cmd, key)
if err != nil {
// !!! THE ERROR HAPPENS HERE !!!
log.Fatalf("Couldn't run %s \"%s\" | Error: %s", cmd, key, err.Error())
}
// Retrieve data
_, err = b.WriteString(result.(string))
if err != nil {
log.Fatal("Couldn't write result to string for " + key)
}
return result.(string)
}
Am I using redigo's API improperly? How can I make it connect?
答案1
得分: 1
URL不符合redis URI scheme specification。userinfo字段应该采用"user:password"的格式。
英文:
The URL does not match the redis URI scheme specification. The userinfo field should be in the format "user:password"
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论