踩坑 AUTH password called without any password

问题描述

哨兵模式部署 redis 服务,本地使用 redis-py 客户端连接,抛异常:

redis.sentinel.MasterNotFoundError: No master found for 'mymaster' 

或者

redis.exceptions.ResponseError: AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?

已确定 ”mymaster“ 配置没问题。

原因

原因很简单,报错信息翻译过来就是:默认用户不需要认证密码,确定你的配置是正确的吗?刚开始一直以为是客户端连接时没有提供密码,实际上是本来不需要密码,但是我们连接时给人家提供了。

password = "redis_pwd"
host = "localhost"

sentinel = Sentinel([
        (host, 26379),
        (host, 26380),
        (host, 26381),
  ], sentinel_kwargs={'password': password}, password=password)

conn = sentinel.master_for("mymaster")
conn.set('mykey', 'myvalue')
result = conn.get('mykey')

print(result)

参数:sentinel_kwargs 用来配置哨兵的密码。password 用来配置 redis 密码。

解决办法

也很简单。确认下部署redis 时都给谁配置密码了。我遇到的就是 redis 有密码,哨兵没有配置密码。

上述代码稍稍改下就 work 了

password = "redis_pwd"
host = "localhost"

sentinel = Sentinel([
        (host, 26379),
        (host, 26380),
        (host, 26381),
  ],password=password)

conn = sentinel.master_for("mymaster")
conn.set('mykey', 'myvalue')
result = conn.get('mykey')

print(result)

坑死!

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值