怎么安装和配置支持obkv-redis的oceanbase版本?有具体可行步骤吗?

【 使用环境 】测试环境
【 OB or 其他组件 】oceanbase + obproxy
【 使用版本 】
±-------------±------------±-----------------------±-----------------------------------------+
| Repository | Version/Tag | Release | Hash |
±-------------±------------±-----------------------±-----------------------------------------+
| oceanbase-ce | 4.2.5.0 | 100000052024102022.el7 | bc00e118ca7638d0e46ac788d8723d43ce1d796d |
| obproxy-ce | 4.3.5.0 | 3.el7 | f17b277b681adb1c86bfc3cfda369ad88896da9d |
±-------------±------------±-----------------------±-----------------------------------------+

【问题描述】用obd安装,配置完成后,用redis-cli连接oceanbase,提示下面的错误。

redis-cli -h 127.0.0.1 -p 2885 -a Root_123456

Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
AUTH failed: ERR errCode:-5154, errCodeName:ObErrBadDatabase, errMsg:Unknown database, server:127.0.0.1:2882, trace:YD3707F000001-0000000000000000-0-0
127.0.0.1:2885>

redis-cli -h 127.0.0.1 -p 2885 --user root@redis_tenant#demo -a Root_123456

Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
AUTH failed: ERR errCode:-5154, errCodeName:ObErrBadDatabase, errMsg:Unknown database, server:127.0.0.1:2882, trace:YAB1A7F000001-0000000000000000-0-0

相关链接都404 not found无法访问: 连接 OBKV-Redis 并鉴权-V4.2.5-文档-分布式数据库使用文档 (oceanbase.com)
[ 官网《OceanBase 数据库》文档 OBKV-Redis ]
连接 OBKV-Redis 并鉴权

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

@论坛小助手

根据您提供的信息,您正在尝试安装和配置支持 OBKV-Redis 的 OceanBase 版本,并遇到了使用 redis-cli 连接时遇到的错误。以下是一些具体的步骤和建议,帮助您解决问题:

1. 安装和配置 OBKV-Redis

1.1 创建 Redis 租户

在 OceanBase 中创建一个支持 OBKV-Redis 的租户。您可以使用 OCP 或者命令行工具来完成这一操作。以下是使用命令行工具 obd 的示例:

obd tenant create -c <cluster_name> -n <tenant_name> --mode redis

1.2 配置 OBProxy

确保 OBProxy 已经正确配置以支持 OBKV-Redis。您需要在 OBProxy 的配置文件中启用 Redis 协议支持。编辑 obproxy.conf 文件,添加或修改以下内容:

[obproxy]
listen_port = 2885
enable_redis_proxy = true

然后重启 OBProxy 以使配置生效:

obd proxy restart <proxy_name>

2. 连接 OBKV-Redis 并鉴权

2.1 使用 redis-cli 连接

确保您使用正确的命令连接到 OBKV-Redis。以下是正确的命令格式:

redis-cli -h <obproxy_ip> -p <obproxy_port> -a <password> --user <username>@<tenant>#<cluster>

例如:

redis-cli -h 127.0.0.1 -p 2885 -a Root_123456 --user root@redis_tenant#demo

3. 常见问题及解决方法

3.1 错误 ERR errCode:-5154, errCodeName:ObErrBadDatabase, errMsg:Unknown database

这个错误通常表示您连接的租户或数据库不存在。请确保您创建的租户名称和集群名称正确无误。

  1. 检查租户名称和集群名称

    obd cluster list
    obd tenant list -c <cluster_name>
    
  2. 验证 OBProxy 配置
    确保 OBProxy 的配置文件中 enable_redis_proxy 设置为 true,并且监听端口正确。

  3. 验证 OBProxy 日志
    查看 OBProxy 的日志文件,寻找更多详细的错误信息。日志文件通常位于 /var/log/obproxy/ 目录下。

4. 参考文档

虽然您提到的官方文档链接无法访问,但以下是一些相关的官方文档链接,您可以尝试访问:

5. 联系技术支持

如果您仍然无法解决问题,建议联系 OceanBase 的技术支持团队以获取进一步的帮助。

希望以上步骤和建议能够帮助您成功安装和配置支持 OBKV-Redis 的 OceanBase 版本。如果有任何其他问题,请随时提问。

详情请参考:

  1. 使用 obd 进行运维
  2. 使用 MySQL 租户做常见数据库开发
  3. 使用 ob-operator 进行运维
  4. 分析 SQL 监控视图
2 个赞

论坛小助手,你是AI机器人吗?

可以来个人工吗?问AI很多次了,最后来来回回解决不了。

1 个赞

cluster and 租户名称是对的,分别是 demo 和 redis-tenant 。

通过命令 obd cluster edit-config demo,添加
listen_port = 2885
enable_redis_proxy = true

然后,执行redis-cli,提示下面的错误。

redis-cli -h 127.0.0.1 -p 2885 -a Root_123456 --user root@redis_tenant#demo

Warning: Using a password with ‘-a’ or ‘-u’ option on the command line interface may not be safe.
AUTH failed: ERR errCode:-4152, errCodeName:ObErrNullValue, errMsg:Null value, server:127.0.0.1:2885, trace:Y9A6C7F000001-0000000000000000-0-0

@论坛小助手

理解您的困扰,让我们一步一步地排查和解决这个问题。

1. 验证租户和集群名称

您已经确认 cluster 名称和 tenant 名称是正确的,分别是 demoredis-tenant。这是好的,我们继续往下走。

2. 验证 OBProxy 配置

您已经通过 obd cluster edit-config demo 添加了以下配置:

listen_port = 2885
enable_redis_proxy = true

请确保这些配置已经生效。可以通过以下命令检查 OBProxy 的配置:

obd proxy show-config <proxy_name>

3. 检查 OBProxy 日志

查看 OBProxy 的日志文件,寻找更多详细的错误信息。日志文件通常位于 /var/log/obproxy/ 目录下。可以通过以下命令查看日志:

tail -f /var/log/obproxy/obproxy.log

4. 验证 OBProxy 服务状态

确保 OBProxy 服务正在运行。可以通过以下命令检查 OBProxy 的状态:

obd proxy status <proxy_name>

5. 验证 OBProxy 连接到正确的 OBServer

确保 OBProxy 正确连接到了包含 redis-tenant 租户的 OBServer。可以通过以下命令检查 OBProxy 的连接情况:

obd proxy show-cluster <proxy_name>

6. 验证租户和用户

确保 redis-tenant 租户中存在 root 用户,并且该用户有权限连接到 OBProxy。可以通过以下命令登录到 OBServer 并检查用户:

obclient -h127.0.0.1 -P2881 -uroot@sys -p

在 OBClient 中执行以下 SQL 查询:

SELECT * FROM __all_tenant WHERE tenant_name = 'redis-tenant';
SELECT * FROM __all_user WHERE tenant_id = (SELECT tenant_id FROM __all_tenant WHERE tenant_name = 'redis-tenant') AND user_name = 'root';

7. 重新启动 OBProxy

有时重新启动 OBProxy 可以解决一些临时问题。可以通过以下命令重启 OBProxy:

obd proxy restart <proxy_name>

8. 检查 OBProxy 配置中的认证信息

确保 OBProxy 配置中的认证信息(如 proxyro_password)正确无误。可以通过以下命令编辑 OBProxy 配置:

obd cluster edit-config <cluster_name>

9. 检查网络连接

确保 OBProxy 和 OBServer 之间的网络连接正常。可以通过 pingtelnet 命令测试网络连接:

ping 127.0.0.1
telnet 127.0.0.1 2885

10. 联系技术支持

如果以上步骤都无法解决问题,建议联系 OceanBase 的技术支持团队以获取进一步的帮助。他们可以提供更深入的诊断和解决方案。

总结

  1. 验证租户和集群名称:已经确认。
  2. 验证 OBProxy 配置:确保配置生效。
  3. 检查 OBProxy 日志:查找详细错误信息。
  4. 验证 OBProxy 服务状态:确保服务运行。
  5. 验证 OBProxy 连接到正确的 OBServer:检查连接情况。
  6. 验证租户和用户:确保用户存在且有权限。
  7. 重新启动 OBProxy:解决临时问题。
  8. 检查 OBProxy 配置中的认证信息:确保认证信息正确。
  9. 检查网络连接:确保网络正常。
  10. 联系技术支持:获取进一步帮助。

希望这些步骤能帮助您解决问题。如果有任何其他问题,请随时提问。

更多信息请查看:

  1. 4500 ~ 4999
  2. 部署个人实验环境
  3. 其他问题
  4. 错误码
  5. SYS 租户/RS 服务问题
  6. 单机部署 OceanBase 数据库
  7. 管理 OBProxy 连接的 OceanBase 集群
  8. 使用命令行部署 obconfigserver
  9. 通过 OBClient 连接 OceanBase 租户
1 个赞

@论坛小助手
请问哪个版本支持 obkv-redis?请给出合适的版本和安装步骤。

为了确保您使用的是支持 OBKV-Redis 的 OceanBase 版本,以下是一些建议和步骤:

支持 OBKV-Redis 的 OceanBase 版本

根据官方文档,OceanBase 4.0 及以上版本支持 OBKV-Redis。您当前使用的版本 oceanbase-ce 4.2.5.0 应该是支持 OBKV-Redis 的。

安装和配置步骤

1. 安装 OceanBase

确保您已经安装了 OceanBase 社区版(CE)4.0 及以上版本。您已经安装了 oceanbase-ce 4.2.5.0,这一步可以跳过。

2. 创建 Redis 租户

使用 OCP 或者命令行工具 obd 创建一个支持 OBKV-Redis 的租户。以下是使用 obd 的示例:

obd tenant create -c demo -n redis-tenant --mode redis

3. 配置 OBProxy

确保 OBProxy 已经正确配置以支持 OBKV-Redis。您需要在 OBProxy 的配置文件中启用 Redis 协议支持。编辑 obproxy.conf 文件,添加或修改以下内容:

[obproxy]
listen_port = 2885
enable_redis_proxy = true

然后重启 OBProxy 以使配置生效:

obd proxy restart demo

4. 连接 OBKV-Redis 并鉴权

确保您使用正确的命令连接到 OBKV-Redis。以下是正确的命令格式:

redis-cli -h 127.0.0.1 -p 2885 -a <password> --user <username>@<tenant>#<cluster>

例如:

redis-cli -h 127.0.0.1 -p 2885 -a Root_123456 --user root@redis-tenant#demo

常见问题及解决方法

1. 错误 ERR errCode:-4152, errCodeName:ObErrNullValue, errMsg:Null value

这个错误通常表示某些配置项为空或未正确设置。请检查以下几点:

  • 租户和用户:确保 redis-tenant 租户中存在 root 用户,并且该用户有权限连接到 OBProxy。可以通过以下命令登录到 OBServer 并检查用户:

    obclient -h127.0.0.1 -P2881 -uroot@sys -p
    

    在 OBClient 中执行以下 SQL 查询:

    SELECT * FROM __all_tenant WHERE tenant_name = 'redis-tenant';
    SELECT * FROM __all_user WHERE tenant_id = (SELECT tenant_id FROM __all_tenant WHERE tenant_name = 'redis-tenant') AND user_name = 'root';
    
  • OBProxy 配置:确保 OBProxy 的配置文件中 enable_redis_proxy 设置为 true,并且 listen_port 正确。

  • OBProxy 日志:查看 OBProxy 的日志文件,寻找更多详细的错误信息。日志文件通常位于 /var/log/obproxy/ 目录下。

    tail -f /var/log/obproxy/obproxy.log
    

参考文档

虽然您提到的官方文档链接无法访问,但以下是一些相关的官方文档链接,您可以尝试访问:

联系技术支持

如果您仍然无法解决问题,建议联系 OceanBase 的技术支持团队以获取进一步的帮助。

希望以上步骤和建议能够帮助您成功安装和配置支持 OBKV-Redis 的 OceanBase 版本。如果有任何其他问题,请随时提问。

1 个赞

学习一下子