Failed to connect oceanbase-ce

【产品名称】OceanBase-ce

【产品版本】3.1.0

【问题描述】obd cluster reload obcluster报错

操作过程:

  1. 修改配置文件

$ obd cluster edit-config obcluster

将注释去掉“#system_memory: 30G”,并更改为system_memory: 10G;

去掉注释,将root**_password: my__pwd **一行密码写上。

2) obd cluster reload obcluster报错

3) obd日志详见如下:

add日志附件

obd.zip (24876 KB)

看上去像是之前手动执行过sql改了root的密码

如果是的话,先通过vi ~/.obd/cluster/obcluster/config.yaml。加上root_passwrord: 当前root的密码

默认root密码为空,修改过root密码后,也将密码添加上了,详见文中描述,配置文件中添加密码步骤已经操作。

可以连接sys租户看一下是否修改成功,从日志来看,虽然直连失败了,但似乎是通过obproxy连接成功了的。

如果是你手动执行sql修改了的root 的密码,那就需要用上vi 的方法修改。

通过edit-config修改时,会先创建一个临时的文件记录修改(包含root password),然后用原来的配置(及不包含root password)去链接集群,然后将root密码修改为新的,成功后在用临时文件覆盖老配置。

如果你先手动执行sql改了root密码,然后在通过edit-config去修改密码。这时候OBD会用老的配置(及不包含新密码)的配置去链接集群,这时候就链接不上了

之前使用alter user root identified by 'root_pwd';

然后obd cluster edit-config obcluster,将将rootpassword: mypwd 一行去掉注释,让后将密码写入:root下划线password: root_pwd

目前使用root@sys和密码连接1-1-1的3个observer正常,使用root@sys和密码连接obproxy正常,方法应该没问题,请进一步指点,谢谢!

  1. 临时解决方法

目前问题临时解决,方法如下:

MySQL [oceanbase]> alter user root identified by '';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:  236
Current database: oceanbase

Query OK, 0 rows affected (0.203 sec)


edit-config注释root_password一行注释,再次reload OK。

2.未解决步骤:

MySQL [oceanbase]> alter user root identified by 'root_pwd';
Query OK, 0 rows affected (0.048 sec)


[admin@obp1 ~]$ vi .obd/cluster/obcluster/config.yaml
...
  root_password: root_pwd
...


reload报错,按上述描述更改root密码这个问题无解?

[admin@obp1 ~]$ obd cluster reload obcluster
Get local repositories and plugins x
[ERROR] Running Error

永久解决方法:alter user  && vi config.yaml && restart obcluster,是否存在更好的方法

试了下,执行完成edit-config之后,直接restart修改也能生效


alter后,edit-config && restart会有报错,此时连不到observer上,通过vi && restart操作,全程无报错。

建议:

完善obd功能,通过obd操作完成密码的更改,同时建议更改root@sys密码时,提供通过obd或vi更改密码,并重启生效。其它更人性化操作也可完善。

我试了好几次都没有复现出连接失败的报错,去不去掉root_password的注释我都试过了。不过我的环境是单节点的

至于您的建议,建议新建一个 建议&反馈 的话题。