OBD安装OceanBase集群失败 (import connect failed)

【 使用环境 】 测试环境
【 OB or 其他组件 】OBD
【 使用版本 】1.6.0
【操作系统】Anolis-8.6
【问题描述】使用OBD命令安装OceanBase集群的时候提示缺少pymysql模块,但是这个模块已经安装了,有知道是哪里的问题吗?报错截图以及相关信息在下方附件!
【复现路径】下载 all-in-one社区版4.0版本的tar包,安装OBD工具,然后执行OBD安装集群的命令,出现缺少pymysql模块的问题。https://www.oceanbase.com/docs/community-observer-cn-10000000000900491
【问题现象及影响】
无法成功安装集群,不可用。
【附件】




以下是我的配置文件:
cat /home/admin/oceanbase/oceanbase-all-in-one/conf/distributed-with-obproxy-example.yaml
##Only need to configure when remote login is required
user:
username: admin
password: 123456
key_file: /home/admin/.ssh/id_rsa
#port: your ssh port, default 22
#timeout: ssh connection timeout (second), default 30
oceanbase-ce:
servers:
- name: server1
# Please don’t use hostname, only IP can be supported
ip: 192.168.28.57
- name: server2
ip: 192.168.28.58
- name: server3
ip: 192.168.28.59
global:
# Please set devname as the network adaptor’s name whose ip is in the setting of severs.
# if set severs as “127.0.0.1”, please set devname as “lo”
# if current ip is 192.168.1.10, and the ip’s network adaptor’s name is “eth0”, please use “eth0”
devname: eth0
# if current hardware’s memory capacity is smaller than 50G, please use the setting of “mini-single-example.yaml” and do a small adjustment.
memory_limit: 8G # The maximum running memory for an observer
# The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
system_memory: 4G
datafile_size: 180G # Size of the data file.
log_disk_size: 50G # The size of disk space used by the clog files.
syslog_level: INFO # System log level. The default value is INFO.
enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false.
max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
# observer cluster name, consistent with obproxy’s cluster_name
appname: obcluster
# root_password: # root user password, can be empty
# proxyro_password: # proxyro user pasword, consistent with obproxy’s observer_sys_password, can be empty
#In this example , support multiple ob process in single node, so different process use different ports.
#If deploy ob cluster in multiple nodes, the port and path setting can be same.
server1:
mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /home/admin/oceanbase/ob
data_dir: /data/ob
redo_dir: /redo/ob
# The directory for data storage. The default value is $home_path/store.
# data_dir: /data
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
# redo_dir: /redo
zone: zone1
server2:
mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /home/admin/oceanbase/ob
data_dir: /data/ob
redo_dir: /redo/ob
# The directory for data storage. The default value is $home_path/store.
# data_dir: /data
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
# redo_dir: /redo
zone: zone2
server3:
mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /home/admin/oceanbase/ob
data_dir: /data/ob
redo_dir: /redo/ob
# The directory for data storage. The default value is $home_path/store.
# data_dir: /data
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
# redo_dir: /redo
zone: zone3
obproxy-ce:
#Set dependent components for the component.
#When the associated configurations are not done, OBD will automatically get the these configurations from the dependent components.
depends:
- oceanbase-ce
servers:
- 192.168.28.54
- 192.168.28.55
- 192.168.28.56
global:
listen_port: 2883 # External port. The default value is 2883.
prometheus_listen_port: 2884 # The Prometheus port. The default value is 2884.
home_path: /home/admin/obproxy
# oceanbase root server list
# format: ip:mysql_port;ip:mysql_port. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
rs_list: 192.168.28.57:2881;192.168.28.58:2881;192.168.28.59:2881
enable_cluster_checkout: false
# observer cluster name, consistent with oceanbase-ce’s appname. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
cluster_name: obcluster
skip_proxy_sys_private_check: true
enable_strict_kernel_release: false
# obproxy_sys_password: # obproxy sys user password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.
#obproxy_sys_password: 123456
# observer_sys_password: # proxyro user pasword, consistent with oceanbase-ce’s proxyro_password, can be empty. When a depends exists, OBD gets this value from the oceanbase-ce of the depends.

ls -l $OBD_INSTALL_PRE/usr/obd/lib/site-packages 看下

我的启动命令是这样的,切换了admin用户执行:
sudo /root/.oceanbase-all-in-one/obd/usr/bin/obd cluster deploy obcluster -c /home/admin/oceanbase/oceanbase-all-in-one/conf/distributed-with-obproxy-example.yaml

不要使用sudo的模式。all in one的安装是当前用户的。
如果需要部署到其他用户下可以在配置文件里指定user

这个问题我已经解决,需要创建 /usr/obd/lib/site-packages目录,并且把python模块Copy过去。