前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OB 运维 | 七步定位 OceanBase 登录报错

OB 运维 | 七步定位 OceanBase 登录报错

作者头像
爱可生开源社区
发布于 2024-12-31 05:47:09
发布于 2024-12-31 05:47:09
16600
代码可运行
举报
运行总次数:0
代码可运行

1问题背景

近期,生产环境通过客户端工具可正常连接 OceanBase 集群,但通过黑屏连接登录报错。

报错信息如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ERROR 1045 (42000): Access denied for user 'root'@'xxx.xxx.xxx.xxx' (using password: NO)

本文以上述案例为例,为大家总结 OceanBase 集群登录时常见报错“Access denied”的七个排查步骤。

2排查步骤

以下将按照常见原因的发生概率,排序逐一列举。

一、确认用户的密码正确性

请再次确认您使用的用户密码是否正确。

二、检查网络连通性

确保不同网段的服务器能够正常访问 obproxy 的 2883 端口。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
telnet <obproxy-ip> 2883

三、检查用户的权限

检查是否具有全局登录权限,以及账号是否被锁定。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// wms 账号登录报错:
[root@10-186-65-73 ~]# mysql -hxxx -P2883 -uwms@hwc_test#hwc_cluster -p"xxx"
ERROR 1045 (42000): Access denied for user 'wms'@'xxx.xxx.xxx.xxx' (using password: YES)
 
mysql -hxxxx -P2883 -uroot@hwc_test#hwc_cluster -p"xxx"
mysql> select user_name,host,is_locked from oceanbase.__all_user where user_name='wms';
+-----------+-------------+-----------+
| user_name | host        | is_locked |
+-----------+-------------+-----------+
| wms       | 10.186.57.% |         0 |
+-----------+-------------+-----------+
1 row in set (0.01 sec)

四、客户端是否支持

MySQL 客户端

OceanBase 数据库当前版本支持的 MySQL 客户端版本包括 V5.5、V5.6 和 V5.7。

obclient 客户端

确认使用的 obclient 版本与 obproxy 和 OceanBase 集群版本是否兼容。可以通过运行 obclient -V 命令来查看 obclient 的版本信息。

五、检查租户参数 ob_tcp_invited_nodes

参数 ob_tcp_invited_nodes='%' 用于设置租户的 IP 白名单。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@10-186-65-12 ~]# mysql -hxxx -P2883 -uwms@hwc_test#hwc_cluster -p"xxx"
ERROR 1227 (42501): Access denied
 
// 检查租户参数
MySQL [(none)]> show variables like '%ob_tcp_invited_nodes%';
+----------------------+-------------+
| Variable_name        | Value       |
+----------------------+-------------+
| ob_tcp_invited_nodes | 10.186.57.% |
+----------------------+-------------+
1 row in set (0.01 sec)
 
// 如果租户白名单有限制,可以用如下命令修改:
ALTER TENANT test_tenant SET VARIABLES ob_tcp_invited_nodes='%';

六、检查 obproxy 日志

查看 obproxy 的日志文件,看看是否有与连接失败相关的错误信息。

日志文件通常位于 /home/admin/logs/obproxy/log/ 目录。

七、检查 obproxy 的配置

确认 obproxy 的配置中没有限制某些 IP 地址的连接,可以通过查看 obproxy 的配置文件来确认这一点。

配置文件通常位于 /home/admin/logs/obproxy/etc/ 目录下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 查看配置文件:
strings obproxy_config.bin

3问题定位

生产环境使用的 MySQL 客户端版本为 8.0.18,经过测试发现,只有部分 MySQL 8.x 版本的客户端支持连接 OceanBase 集群。

登录报错的原因是 MySQL 客户端版本与 OceanBase 集群不匹配。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱可生开源社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2排查步骤
    • 一、确认用户的密码正确性
    • 二、检查网络连通性
    • 三、检查用户的权限
    • 四、客户端是否支持
      • MySQL 客户端
      • obclient 客户端
    • 五、检查租户参数 ob_tcp_invited_nodes
    • 六、检查 obproxy 日志
    • 七、检查 obproxy 的配置
  • 3问题定位
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档