本文介绍如何在连接火山引擎 ECS 自建 Redis 实例时,出现连接认证失败,请检查网络是否正常的可能原因和解决方案。您可以根据本文提示排查异常情况。
在创建数据库传输服务任务时,源库的配置信息可能填写错误。
解决方案
源库的配置信息如下表所示:
参数 | 说明 |
---|---|
实例类型 | 选择 Redis。 |
接入方式 | 选择火山引擎 ECS 自建 Redis。 |
主机地址 | 输入源自建实例的主机地址。 说明 该主机地址需要为私网地址。 |
端口 | 输入源自建实例的端口号。 |
VPC | 从下拉列表中选择源实例所属的私有网络。 说明 该私有网络必须在 ECS 所属的网络内。 |
数据库账号 | 默认账号为 default,您可以根据实际情况设置数据库账号。 说明 数据库账号可以留空不设置,在不设置数据库账号时,数据库账号默认为 default。 |
数据库密码 | 输入源实例数据库账号对应的密码。 |
您的实例可能进行了访问控制。
解决方案
您需要先放开 IP 段 100.64.0.0/10
的访问权限,再创建数据传输任务。具体操作如下所示:
在创建迁移任务页面的源库配置区域,单击查看 DTS IP 段。
在 DTS 服务器访问授权对话框,单击复制到剪贴板,获取放开的 IP 段。
添加目标 IP 段 100.64.0.0/10
至源实例的白名单或安全组内。
火山引擎 ECS 自建 Redis 实例可能开启了保护模式。由于实例在开启保护模式后,仅允许本地连接,无法进行远程连接。
您可以执行以下命令,确认实例是否开启了保护模式:
config get protected-mode
如果执行结果出现以下报错,则表示实例开启了保护模式:
failed: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified
解决方案
执行以下命令关闭实例的保护模式:
config set protected-mode no
实例的 bind
参数设置为 127.0.0.1
,表示实例仅支持本地连接,无法进行远程连接。
您可以执行以下命令,获取 bind
参数信息:
config get bind
解决方案
在火山引擎 ECS 服务器上修改配置文件 redis.conf
中的 bind
参数信息设置为 0.0.0.0/0
。
说明
由于将 0.0.0.0/0
IP 网段暴露在公网上,可能会导致火山引擎 ECS 自建 Redis 实例被攻击,因此在配置文件前,建议您给 Redis 设置访问密码,具体操作如下:
在火山引擎 ECS 服务器上修改配置文件 redis.conf
取消以下代码的注销。
requirepass foobared
在配置文件 redis.conf
中添加以下代码。
requirepass <yourpassword>
<yourpassword>
为您设置的密码。
重启 Redis 服务器。
成功设置密码后,您需要在连接 Redis 时,提供正确的密码才可以进行访问。