oceanbase通过k8s集群启动后,无法通过ip+端口访问,但是通过集群ip可以进行访问

已解决阿松大阿萨大厦

1 个赞

根据您的描述,OceanBase 通过 Kubernetes 集群启动后遇到访问问题,错误信息提示了与 MySQL 服务器连接丢失以及特定用户的访问被拒绝。为了更准确地定位并解决问题,建议您使用 obdiag 工具来收集相关信息,并将这些信息提供给我们以便进一步分析。

日志采集场景: 集群无法连接
日志采集命令: obdiag gather scene run --scene=observer.cluster_down

这条命令将帮助我们获取关于集群连接问题的关键信息。此外,请考虑执行以下根因分析以探索具体的错误原因:

根因分析场景: 针对断链接场景的根因分析
根因分析命令: obdiag rca run --scene=disconnection

此命令专门用于诊断与连接中断相关的故障。

请先运行上述命令并将产生的日志文件分享给我们。与此同时,为了加快问题解决进度,还请您回答以下几个问题:

  1. 发生该问题时,是否有任何网络配置或安全组规则发生了变更?
  2. 这个’proxyro’用户是在何时创建的?它是否具有足够的权限去访问数据库?最近是否更改过这个用户的密码或者权限设置?
  3. 能否提供更多关于尝试连接OceanBase的具体细节,例如使用的客户端工具、版本信息等?
  4. 您能否检查并分享Kubernetes Pod的日志内容,尤其是与OceanBase服务启动相关的部分?

希望这些问题可以帮助我们更好地理解当前情况。期待您的回复。

注:确保在执行obdiag命令之前已经正确安装和配置了该工具,并按照官方指南设置了必要的环境变量。如果您需要有关如何操作的帮助,请告知。

附上敏捷诊断工具 obdiag 使用帮助链接

666666

大哥,能给看下问题嘛

没有看明白 你是通过哪个方式连接的 你是通过odp连接的么?还是直连 如果是odp的话 看着你没有加集群名-uroot@sys#集群名

obd cluster list --查看一下集群名

查一下observer进程是否运行 ps -ef | grep observer

看日志信息 OBProxy 内部用户 proxyro@sys 认证失败(MySQL 1045),导致集群资源 obcluster 初始化失败,进而外部客户端登录也被拒绝。

proxyro@sys 你使用这个用户的密码登录试一下

obcluster-1-zone1-v9g85w 1/1 Running 0 24h
obcluster-1-zone2-4mpjrs 1/1 Running 0 24h
obcluster-1-zone3-f64776 1/1 Running 0 24h

proxyro@sys 你使用这个用户的密码登录试一下
mysql -h10.0.2.175 -P2881 -uproxyro@sys -p -Doceanbase -e “SELECT 1”

SELECT user_name, host FROM oceanbase.__all_user WHERE user_name = ‘proxyro’;

odp上查一下这个信息
SHOW PROXYCONFIG LIKE ‘observer_sys_password%’;

bash-4.4# mysql -h -P2881 -uproxyro@sys#obcluster -p
Enter password:
ERROR 1045 (42000): Access denied for user ‘proxyro’@‘xxx.xxx.xxx.xxx’ (using password: YES)
bash-4.4# mysql -h -P2881 -uproxyro@sys -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3221641412
用的集群ip可以登录,添加#obcluster就不行了

这个不要用集群名

我没有安装odb,全部是用镜像k8s启动的

这个需要通过odp连接才能查询
SHOW PROXYCONFIG LIKE ‘observer_sys_password%’;

observer_sys_password=Admin123…

还是需要内部表查看一下的 怀疑不一致

目前是不能通过odp进行集群访问

我没有说过这个密码有问题 proxyro这个用户应该有问题

proxyro_password=Admin321 看你配置文件是这个进程的是这个 proxyro_password=Admin 不知道你库里的密码是哪个

那就是 你把odp关闭 重新启动 proxyro_password=Admin应该密码有问题

你是怎么修改的proxyro密码

mysql> DROP USER IF EXISTS ‘proxyro’@’%’;
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE USER ‘proxyro’@’%’ IDENTIFIED BY ‘Admin’;
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT SELECT ON . TO ‘proxyro’@’%’;
GRANT CREATE ON . TO ‘proxyro’@’%’;
GRANT DROP ON . TO ‘proxyro’@’%’;
GRANT ALTER ON . TO ‘proxyro’@’%’;
GRANT SHOW VIEW ON . TO ‘proxyro’@’%’;
GRANT CREATE VIEW ON . TO ‘proxyro’@’%’;
GRANT SHOW DATABASES ON . TO ‘proxyro’@’%’;
GRANT SELECT ON information_schema.* TO ‘proxyro’@’%’;
GRANT PROCESS ON . TO ‘proxyro’@’%’;Query OK, 0 rows affected (0.04 sec)

mysql> GRANT CREATE ON . TO ‘proxyro’@’%’;
Query OK, 0 rows affected (0.03 sec)

mysql> GRANT DROP ON . TO ‘proxyro’@’%’;
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT ALTER ON . TO ‘proxyro’@’%’;
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT SHOW VIEW ON . TO ‘proxyro’@’%’;
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT CREATE VIEW ON . TO ‘proxyro’@’%’;
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT SHOW DATABASES ON . TO ‘proxyro’@’%’;
Query OK, 0 rows affected (0.04 sec)

mysql> GRANT SELECT ON information_schema.* TO ‘proxyro’@’%’;
ERROR 1044 (42000): Access denied for user ‘root’@’%’ to database ‘information_schema’
mysql> GRANT PROCESS ON . TO ‘proxyro’@’%’;
Query OK, 0 rows affected (0.04 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected, 1 warning (0.00 sec)

看着你执行了第一步 但是也不规范



你看看这个密码 是怎么修改的 看着你操作的应该有问题 odp保存的密码 你应该没有修改

proxysys登录方式
mysql -h127.1 -P2883 -uroot@proxysys -pxx
root@proxysys 的密码对应配置项 obproxy_sys_password