本文档介绍如何快速使用 MySQL 客户端访问已部署的 OceanBase 数据库环境。

为了让您初步了解 OceanBase 集群的常见操作,本文档采用命令行客户端访问方式。

前提条件

连接 OceanBase 数据库之前,请确保您已经有租户和账户信息。

客户端环境准备

在环境的服务器上安装 MySQL 客户端。由于 MySQL 不同版本可能存在兼容问题,推荐使用 MySQL 5.6 相关版本。如果当前使用的是 Mac 等图形界面操作系统,需要图形界面客户端,可使用的客户端工具有 OceanBase 开发者中心(OceanBase Developer Center,ODC)、OBeaver 开源客户端等。

连接应用租户

快速部署测试环境中完成了测试租户的验证,为了进一步了解并模拟应用连接 OceanBase 数据库的操作使用方式,将对测试租户验证步骤进行分步说明。

  1. #(1)
  2. $mysql -h192.168.1.100 -uroot@wh_tenant1#obtest -P2883
  3. #(2)
  4. show databases;
  5. create database wh_db1;
  6. show databases;
  7. use wh_db1;
  8. #(3)
  9. create table wh_tab1(col1 int,col2 char(10));
  10. create table wh_tab2(col1 int primary key,col2 varchar(10));
  11. insert into wh_tab1 values (1,'Hello'),(2,'World');
  12. insert into wh_tab2 values (3,'Wuhan'),(4,'Jiayou');
  13. select concat(replace(GROUP_CONCAT(col2),',',' '),'!') as OceanBase from wh_tab1 where col1=1;
  14. select concat(replace(GROUP_CONCAT(col2),',',' '),'!') as OceanBase from wh_tab2 where col1 in (2,3);
  15. #(4)
  16. exit;

其中:

(1):使用 MySQL 客户端通过 OBProxy 2883 服务端口连接 obtest 集群中已创建的租户实例 wh_tenant1 ,连接用户名为 root,当前密码未配置,默认为空。

参数

说明

-hOceanBase 数据库连接 IP,通过 OBProxy 连接时为 OBProxy 的 IP 地址。
-PMySQL 协议端口。
-u连接 OceanBase 数据库的用户名。

-p

连接 OceanBase 数据库的用户密码。

OceanBase 集群支持多租户功能,每个租户是一个独立的数据库实例,租户间数据完全隔离。需要特殊说明的是,一个 OceanBase 集群中有一个特殊的系统租户(sys),这个租户承载着管理集群运行的数据和资源,完成系统自举后自动生成,不能用于应用使用。示例中使用的是新建的 MySQL 模式兼容性租户,兼容性属性需在创建租户时指定,其他相关信息请参考后续章节。

说明

  • 通过直连方式连接时,连接命令中不需要添加集群名且连接端口默认为 2881,即$mysql -h192.168.1.100 -uroot@wh_tenant1 -P2881
  • 普通租户通过直连方式连接某台 OBServer 时,需要确保该租户的资源分布在该 OBServer上,如果该租户的资源未分布在该OBServer 上,则无法通过直连该 OBServer 连接到该租户。

(2):连接租户成功后,分别执行了与 MySQL 语法相同的数据库列表打印命令 show databases 和创建新数据库命令 create database <db_name>,并再次打印数据库列表和切换使用新创建的数据库 wh_db1。

(3):MySQL 相同的语法创建了两张新表,表名分别为 wh_tab1 和 wh_tab2,然后分别执行了两条行数据插入,最后执行两张表的数据访问读取。同时可以看到 select SQL 语句使用了与 MySQL 相同的函数 concat 、replace 和 group_concat,相关函数功能和说明亦可参考 MySQL 相关开发手册。

(4):执行断开应用租户客户端连接。

连接系统租户

作为 OceanBase 数据库的管理员要经常关注集群系统的运行情况。除了通过 OceanBase 云平台(OCP)功能操作方式,OceanBase 数据库管理员仍会直接连接系统租户(sys 租户)来管理集群级对象和查看相关系统表/视图信息。

快速部署测试环境中完成了测试租户的创建,为了初步了解系统租户的使用方式,将对测试租户创建步骤进行分步说明。

  1. (1)
  2. $mysql -h192.168.1.100 -uroot@sys#obtest -P2883
  3. (2)
  4. create resource unit wh_unit1 max_cpu 1,max_memory '1G',max_iops 128,max_disk_size '10G',max_session_num 64,min_cpu 1,min_memory '1G',min_iops 128;
  5. (3)
  6. create resource pool wh_respool1 unit wh_unit1,unit_num 1,zone_list('wh_zone1','wh_zone2','wh_zone3');
  7. (4)
  8. create tenant if not exists wh_tenant1 charset='utf8mb4',replica_num=3,zone_list=('wh_zone1','wh_zone2','wh_zone3'),primary_zone='wh_zone1',resource_pool_list=('wh_respool1');
  9. (5)
  10. alter tenant wh_tenant1 set variables ob_tcp_invited_nodes = '%';
  11. (6)
  12. exit;
  1. 使用 MySQL 客户端通过 OBProxy 2883 服务端口连接 obtest 集群 sys 租户 ,连接用户名为 root,当前密码未配置,默认为空。

注意:

  • sys 租户也是一个 MySQL 模式的租户,连接成功后可通过 show variables like 'ob_compatibility_mode'; 命令确认。
  • sys 租户可使用与 MySQL 数据库相同的 SQL语法操作,但禁止使用 sys 租户作为应用租户。
  1. 创建应用租户首先需要创建资源单元配置 wh_unit1 ,对应命令为 create resource unit。该命令会定义单元容器的资源容量配置,如 CPU、内存等,以用于下一步资源池创建,详情说明请参考后续章节。
  2. 创建资源池 wh_respool1,使用命令 create resource pool。该命令会创建资源池,实体化资源单元,在集群服务器上真实占用相关资源配置,如 CPU、内存等,以用于下一步租户创建,详情说明请参考后续章节。
  3. 创建租户 wh_tenant1,使用命令 create tenant。该命令会创建应用租户,使租户实例服务化,类似需要指定租户相关配置,详情说明请参考后续章节。
  4. 修改租户级别配置环境变量,与 MySQL 数据库相同,环境变量分为会话级和全局级,相关变量同时也是租户级配置参数,可通过连接 sys 租户后执行 alter tenant <tenant_name> set variables <variable_name> = <value>; 命令修改全局级环境变量配置。ob_tcp_invited_nodes 配置为 % 是用于放开 IP 访问白名单。

注意:

  • 修改租户级环境变量配置,通常的方式是连接对应租户后执行 MySQL 数据库相同的 ​set ​或 ​set global​ 命令,这里是通过 sys 租户直接修改了对应租户的环境变量配置。该方法更多适用于不知道应用租户密码,仍需修改租户环境变量配置的场景。
  • 与租户级环境变量配置相对的是集群参数配置,查询命令为 show parameters,修改命令为 alter system set <parameter_name> = <value>;,详情请参考后续章节。
  1. 执行断开系统租户客户端连接。