redis-sentinel搭建问题

failover-abort-no-good-slave错误

出现failover-abort-no-good-slave master mymaster 192.168.1.10 7001问题解决方案
一:
如果主从服务器中设置有密码,需要在在sentinel.conf中设置

sentinel auth-pass <master-name> <password>

二:
查看主从服务器中是否 开启保护模式,如果开启了需要设置bind(绑定本机的ip,当前机器可能有 多个网卡,但是只允许,通过bind 设置的网卡才可以访问redis),查看bind设置是否正确,或者关闭保护模式

引用:redis.conf配置可以查看

bind
bind用于绑定本机的网络接口(网卡),注意是本机。

网卡IP和主机IP之间有什么区别呢?网卡IP是直接分配给网卡的地址,而主机IP是由操作系统管理的。网卡IP是用于区分不同网卡的,而主机IP是用于区分不同计算机的。主机IP可以通过路由器等设备与其他网络通信,而网卡IP只能用于本地通信。

每台机器可能有多个网卡,每个网卡都有一个 IP 地址。配置了 bind,则表示我只允许来自本机指定网卡的 Redis 请求。

❝MySQL:“bind 是用于限制访问你的机器 IP 么?”

非也,注意,这个配置指的并不是只有 bind 指定的 IP 地址的计算机才能访问我。如果想限制指定的主机连接我,只能通过防火墙来控制,bind 参数不也能起到这个作用。

举个例子:如果我所在的服务器有两个网卡,每个网卡有一个 IP 地址, IP1,IP2。

配置 bind IP1,则表示只能通过这个网卡地址来的网络请求访问我,也可以使用空格分割绑定多个网卡 IP。

我的默认配置是bind 127.0.0.1 -::1 表示绑定本地回环地址 IPv4 和 Ipv6。- 表示当 ip 不存在也能启动成功。

protected-mode
❝MySQL:网络世界很危险滴,你如何保证安全?

默认开启保护模式,如果没有设置密码或者没有 bind 配置,我只允许在本机连接我,其它机器无法连接。

如果想让其它机器连接我,有以下三种方式。

配置为 protected-mode no(不建议,地球很危险滴,防人之心不可无)。
protected-mode yes,配置 bind 绑定本机的 IP。
protected-mode yes,除了设置 bind 以外,还可以通过 requirepass magebyte设置密码为 magebyte, 让其他机器的客户端能使用密码访问我。
bind、protected-mode、requirepass 之间的关系

bind:指定的是我所在服务器网卡的 IP,不是指定某个可以访问我的机器。
protected-mode:保护模式,默认开启,如果没有设置密码或者 bind IP,我只接受本机访问(没密码+保护模式启动=本地访问)。
requirepass,Redis 客户端连接我通行的密码。
如果参数设置为bind 127.0.0.1 -::1,不管 protected-mode是否开启,只能本机用 127.0.0.1 连接,其他外机无法连接。

在生产环境中,为了安全,不要关闭 protected-mode,并设置 requirepass 参数配置密码和 bind 绑定机器的网卡 IP。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值