Oceanbase 连接租户 ERROR 1227 (42501): Access denied 错误解决方法
作者:
dave
1 故障现象
在 OB 中连接新创建的租户,报如下错误,虽然 OB 默认租户并没有密码,但连接还是报错:
[dave@www.cndba.cn ~]$obclient -h192.168.1.21 -P2881 -uroot@USTC -A
ERROR 1227 (42501): Access denied
2 分析原因
实际上这里是访问权限的显示。
如果我们在创建租户时没有制定OB_TCP_INVITED_NODES 变量,连接就会报如下错误。
obclient [oceanbase]> CREATE TENANT IF NOT EXISTS USTC CHARSET='utf8mb4', ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='RANDOM', RESOURCE_POOL_LIST=('RU4C8G24G_POOL');
我们可以在创建租户时指定改变量:
obclient [oceanbase]> CREATE TENANT IF NOT EXISTS USTC CHARSET='utf8mb4', ZONE_LIST=('zone1','zone2','zone3'), PRIMARY_ZONE='RANDOM', RESOURCE_POOL_LIST=('RU4C8G24G_POOL') set OB_TCP_INVITED_NODES='%';
3 解决方法
如果租户已经创建过了,那可以按如下方法解决。
可以先使用 127.0.0.1 登录:
[dave@www.cndba.cn ~]$obclient -h127.0.0.1 -P2881 -uroot@USTC -A
Welcome to the OceanBase. Commands end with ; or /g.
Your OceanBase connection id is 3221620202
Server version: OceanBase_CE 4.1.0.0 (r101010022023051821-f7379b26f8cd11f026e06846043550f9e0d42ead) (Built May 18 2023 21:14:14)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
obclient [(none)]>
默认密码为空,这里可以顺便设置个密码:
obclient [(none)]> ALTER USER root IDENTIFIED BY 'xxxxxx';
Query OK, 0 rows affected (0.125 sec)
然后修改租户系统参数:
obclient [(none)]> set global OB_TCP_INVITED_NODES='%';
Query OK, 0 rows affected (0.121 sec)
obclient [(none)]> SHOW VARIABLES LIKE 'OB_TCP_INVITED_NODES';
+----------------------+---------------+
| Variable_name | Value |
+----------------------+---------------+
| ob_tcp_invited_nodes | 127.0.0.1,::1 |
+----------------------+---------------+
1 row in set (0.003 sec)
验证登录:
[dave@www.cndba.cn ~]$obclient -h192.168.1.21 -P2881 -uroot@USTC -p'xxxxxx' -A
Welcome to the OceanBase. Commands end with ; or /g.
Your OceanBase connection id is 3221604796
Server version: OceanBase_CE 4.1.0.0 (r101010022023051821-f7379b26f8cd11f026e06846043550f9e0d42ead) (Built May 18 2023 21:14:14)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
obclient [(none)]>
版权声明:本文为博主原创文章,未经博主允许不得转载。