Centos 7.8.2003 obd 部署oceanbase-all-in-one-4.3.5_20250106.el7.x86_64失败

【 使用环境 】生产环境 or 测试环境
测试环境
【 OB or 其他组件 】
OB
【 使用版本 】
oceanbase-all-in-one-4.3.5
【问题描述】清晰明确描述问题
[ERROR] failed to create user meta
[2025-01-15 09:23:25.570] [e3ce9c7c-d2de-11ef-b2a6-000c29d5ec9f] [DEBUG] – fail to connect 192.168.1.73 -P2881 -uroot@ocp -p******
【复现路径】问题出现前后相关操作
使用命令重新部署集群 obd cluster redeploy obtest
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

根据您提供的信息,您的问题出现在使用 obd cluster redeploy obtest 命令重新部署 OceanBase 集群时遇到了错误 [ERROR] failed to create user meta 和无法连接到指定 IP 地址的数据库实例。

问题分析

  1. 创建用户元数据失败

    • 错误信息 [ERROR] failed to create user meta 表明在尝试创建或访问用户元数据时发生了问题。这可能是由于权限不足、配置文件错误或其他内部错误导致的。
  2. 连接失败

    • 错误信息 [DEBUG] -- fail to connect 192.168.1.73 -P2881 -uroot@ocp -p****** 表明 OBDeploy 工具无法通过给定的凭据和端口连接到目标机器上的 OceanBase 实例。这可能是因为用户名或密码错误、网络连接问题、防火墙阻止了连接或者目标机器上的服务未启动。

解决步骤

1. 检查用户名和密码

  • 确认用于连接的用户名 (root@ocp) 和密码是否正确。您可以尝试手动通过命令行工具(如 MySQL 客户端)连接到目标机器上的 OceanBase 实例来验证凭据是否有效:
    mysql -h 192.168.1.73 -P2881 -uroot@ocp -p
    

2. 检查网络连接

  • 确保从执行 obd 命令的机器可以到达目标机器(192.168.1.73)。可以通过 pingtelnet 测试端口连通性:
    ping 192.168.1.73
    telnet 192.168.1.73 2881
    
  • 如果上述测试失败,请检查防火墙设置或网络配置以确保允许必要的流量。

3. 检查服务状态

  • 登录到目标机器并确认 OceanBase 服务是否正在运行。对于社区版,通常可以通过以下命令检查:
    ps aux | grep observer
    
  • 如果服务没有运行,尝试启动它,并确保它绑定到了正确的 IP 地址和端口上。

4. 修改配置文件

  • 如果以上检查都正常,但仍然无法解决问题,考虑编辑集群配置文件来调整相关参数。使用 obd cluster edit-config <deploy_name> 命令打开配置文件进行修改。特别注意检查与身份验证相关的部分以及任何可能导致冲突的端口配置。

5. 查看详细日志

  • 您已经提供了日志文件,建议仔细阅读这些日志中的具体错误信息。特别是查看 /root/ob-agent/obdiag_analyze_pack_20250115094216/result_details.txt 文件中是否有更多关于此次失败的线索。

如果经过上述排查后问题依旧存在,建议将详细的日志信息提交至 OceanBase 官方问答区 获取进一步的帮助和支持。同时附带完整的环境描述和操作记录有助于更快地定位问题所在。

详情请参考:

  1. 升级 OCP Express
  2. 错误码
  3. 安装并配置 obd
  4. 4000 ~ 4499
  5. 0001 ~ 3999
  6. OceanBase 安装部署工具 V2.8.0

密码是部署时自动生成的密码
[root@oceanbase01 ~]# mysql -h 192.168.1.73 -P2881 -uroot@ocp -p
Enter password:
ERROR 1045 (42000): Access denied for user ‘root’@‘xxx.xxx.xxx.xxx’ (using password: YES)

根据您提供的信息,使用自动生成的密码通过 MySQL 客户端连接时遇到了错误 ERROR 1045 (42000): Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES)。这表明用户名或密码不正确,或者权限配置存在问题。

问题分析

  1. 用户名或密码错误

    • 错误码 1045 和错误信息 Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: YES) 表明提供的用户名和密码组合无效。
  2. 权限配置问题

    • 可能是用户 'root'@'xxx.xxx.xxx.xxx' 没有足够的权限访问数据库实例。

解决步骤

1. 确认自动生成的密码

  • 自动生成的密码通常会记录在部署日志或配置文件中。请检查以下位置以获取正确的密码:
    • 部署日志:查看执行 obd cluster deployobd cluster redeploy 时的日志输出。
    • 配置文件:检查 ~/.obd/cluster/<deploy_name>/config.yaml 文件中的相关字段(如 root_password)。

2. 使用 OBClient 进行连接测试

  • 尝试使用 OBClient 而不是 MySQL 客户端进行连接测试,确保命令格式正确:
    obclient -h192.168.1.73 -P2881 -uroot@ocp -p
    
    注意:建议不要在命令行中直接输入密码,而是在提示符下输入,以避免密码泄露。

3. 检查用户权限

  • 如果确认密码无误但仍然无法连接,请登录到目标机器并使用具有管理员权限的账户检查用户 'root'@'xxx.xxx.xxx.xxx' 的权限:
    SELECT User, Host FROM mysql.user WHERE User = 'root';
    SHOW GRANTS FOR 'root'@'xxx.xxx.xxx.xxx';
    
    确保该用户有适当的权限,并且允许从当前客户端 IP 地址进行连接。

4. 重置密码

  • 如果确实忘记了密码或需要重置密码,可以按照以下步骤操作:
    1. 登录到目标机器并使用管理员权限进入 OceanBase 数据库:
      obclient -h127.0.0.1 -P2881 -uroot@sys -p
      
    2. 修改用户密码:
      ALTER USER 'root'@'%' IDENTIFIED BY 'new_password';
      FLUSH PRIVILEGES;
      
    3. 再次尝试连接:
      obclient -h192.168.1.73 -P2881 -uroot@ocp -p
      

5. 检查防火墙和网络设置

  • 确保防火墙没有阻止来自客户端 IP 地址的连接请求。可以通过临时关闭防火墙或添加相应的规则来测试:
    systemctl stop firewalld
    # 或者添加规则允许特定端口
    firewall-cmd --zone=public --add-port=2881/tcp --permanent
    firewall-cmd --reload
    

6. 查看详细日志

  • 您已经提供了日志文件,建议仔细阅读这些日志中的具体错误信息。特别是查看 /root/ob-agent/obdiag_analyze_pack_20250115094216/result_details.txt 文件中是否有更多关于此次失败的线索。

如果经过上述排查后问题依旧存在,建议将详细的日志信息提交至 OceanBase 官方问答区 获取进一步的帮助和支持。同时附带完整的环境描述和操作记录有助于更快地定位问题所在。

总结

根据文档片段中的信息,错误码 1045 通常与用户名或密码错误有关。请首先确认自动生成的密码是否正确,并检查用户权限配置。如果问题依然无法解决,请参考上述步骤进一步排查。

更多信息请查看:

  1. 0001 ~ 3999
  2. 使用 systemd 部署 OceanBase 数据库
  3. 部署 OceanBase 集群
  4. 使用 OceanBase 导数工具在 OceanBase 集群 MySQL 租户间迁移数据
  5. 使用 OceanBase 导数工具从 OceanBase 集群 Oracle 租户迁移数据到 MySQL 租户
  6. 数据传输加密
  7. 接管非 obshell 部署集群
  8. Commons Pool 连接 OceanBase 数据库示例程序
  9. HikariCP 连接池连接 OceanBase 数据库示例程序

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

[ERROR] failed to create user meta
可能是租户创建失败,把你的yaml文件发出来看一下在 ~/.obd/cluster/xxxx/

麻烦看一下是否是参数配置有误

Oceanbase.zip (2.5 KB)

可以重新使用白屏化安装,建议去除ocp-express组件。或者更改为搭建ocp集群(memory_limit不小于8G),建议内存不足时候设置system_memory: 1G。

是什么原因导致的ocp租户创建失败啊

看你的参数配置,应该是内存不足导致的

Thanks !