---
title: "创建租户 | OceanBase 文档中心"
description: 创建租户 本文介绍通过 ob-operator 创建租户。 前提条件 创建租户前，您需要确保： ob-operator v2.1.0 及以上。 OceanBase 集群部署完成且正常运行。 使用配置文件创建租户 通过应用租户配置文件创建租户。配置文件内容可参考 GitHub 。 创建租户的命令如下，该命令会在当前 K…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*_Ef7QIYUi3gAAAAAAAAAAAAADiGDAQ/original) ob-operatorV 2.2.0 社区版

# 创建租户

更新时间：2026-04-13 16:46:32

[编辑](https://github.com/oceanbase/ob-operator-doc/edit/V2.2.0/zh-CN/500.ob-operator-user-guide/200.tenant-management-of-ob-operator/100.create-tenant.md)  

本文介绍通过 ob-operator 创建租户。

## 前提条件

创建租户前，您需要确保：

- ob-operator v2.1.0 及以上。
 - OceanBase 集群部署完成且正常运行。

## 使用配置文件创建租户

通过应用租户配置文件创建租户。配置文件内容可参考 [GitHub](https://github.com/oceanbase/ob-operator/blob/2.1.0_release/deploy/tenant.yaml) 。

创建租户的命令如下，该命令会在当前 Kubernetes 集群中创建一个 OBTenant 租户的资源。

```shell
kubectl apply -f tenant.yaml

```

## 创建租户示例

创建名为 t1 的一个 3 副本的 MySQL 租户，并指定允许任何客户端 IP 连接该租户。

创建租户时，ob-operator 会根据配置文件 `tenant.yaml` 中的 pools 按照 zone 来创建对应的 resource unit 和 resource pool。根据 resource 下的配置项来创建 resource unit 并以此作为资源规格来创建 resource pool。

```yaml
apiVersion: oceanbase.oceanbase.com/v1alpha1  
kind: OBTenant  
metadata:
  name: t1
  namespace: oceanbase
spec:
  obcluster: obcluster
  tenantName: t1
  unitNum: 1
  charset: utf8mb4  
  connectWhiteList: '%'
  forceDelete: true
  credentials: # 可选
    root: t1-ro # 可选，如不传则 root 用户密码为空
    standbyRo: t1-ro # 可选，如不传则自动创建
  pools:
    - zone: zone1
      type:
        name: Full
        replica: 1
        isActive: true
      resource:
        maxCPU: 1
        minCPU: 1
        memorySize: 5Gi
        maxIops: 1024
        minIops: 1024
        iopsWeight: 2
        logDiskSize: 12Gi
    - zone: zone2
      type:
        name: Full
        replica: 1
        isActive: true
      resource:
        maxCPU: 1
        minCPU: 1
        memorySize: 5Gi
        maxIops: 1024
        minIops: 1024
        iopsWeight: 2
        logDiskSize: 12Gi
    - zone: zone3
      type:
        name: Full
        replica: 1
        isActive: true
      priority: 3
      resource:
        maxCPU: 1
        minCPU: 1
        memorySize: 5Gi
        maxIops: 1024
        minIops: 1024
        iopsWeight: 2
        logDiskSize: 12Gi

```

配置项说明如下：

| 配置项 | 说明 |
| --- | --- |
| metadata.name | 租户资源的名称，在 K8s 的同一个命名空间下唯一；必填。 |
| metadata.namespace | 指定租户资源所在的命名空间；必填。 |
| obcluster | 指定需要创建租户的 OceanBase 数据库集群名；必填。 |
| tenantName | 租户名。租户名的合法性和变量名一致，最长 128 个字符，字符只能是大小写英文字母、数字和下划线，而且必须以字母或下划线开头，并且不能是 OceanBase 数据库的关键字。 OceanBase 数据库中所支持的关键字请参见 MySQL 模式的 [预留关键字](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218216)和 Oracle 模式的[预留关键字](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218217)；必填。 |
| unitNum | 指定要创建的单个 ZONE 下的单元个数，取值要小于单个 ZONE 中的 OBServer 节点个数；必填。 |
| charset | 指定租户的字符集，字符集相关的介绍信息请参见[字符集](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000221234)；非必填，默认设置为 `utf8mb4`。 |
| collate | 指定租户的字符序，字符序相关的介绍信息请参见[字符序](https://www.oceanbase.com/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/100.basic-elements-of-mysql-mode/300.character-set-and-collation-of-mysql-mode/300.collation-of-mysql-mode.md](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000222182))；非必填。 |
| connectWhiteList | 指定允许连接该租户的客户端 IP，`%` 表示任何客户端 IP 都可以连接该租户；非必填，默认设置为 `%`。如果用户需要修改改配置，则需要将 ob-operator 所处的网段包含在配置内，否则 ob-operator 会连接不上该租户。 |
| forceDelete | 删除时是否强制删除，非必填，默认为 false。 |
| credentials | 创建租户时创建用户和修改密码的 Secret 资源引用。目前支持配置 root 账号和 standbyRo 两个用户的密码，非必填，不填则不修改密码。 |
| pools | 租户的拓扑结构，用于定义租户在每个 zone 上的副本、资源分布等情况。 |
| type.name | 指定租户在该 zone 的副本类型，支持 full 和 readonly, 需要写出完整类型, 大小写不敏感；必填。 |
| type.replica | 指定租户在该 zone 的副本数；非必填，默认为 1。 |
| type.isActive | 是否启用 zone。 |
| priority | 指定当前 zone 的优先级，数字越大优先级越高；非必填，默认为 0。 |
| resource | 指定租户在该 zone 的资源情况。 |
| maxCPU | 指定租户在该 zone 上 使用的资源单元提供的 CPU 的上限；必填，最小值为 1。 |
| minCPU | 指定租户在该 zone 上 使用的资源单元提供的 CPU 的下限；非必填，默认等于 maxCPU。 |
| memorySize | 指定租户在该 zone 上 使用的资源单元提供的 Memory 的大小；必填，最小值为 1Gi；注意集群的 __min_full_resource_pool_memory 配置项的值 |
| maxIops | 指定租户在该 zone 上 使用的资源单元提供的 Iops 的上限；非必填。 |
| minIops | 指定租户在该 zone 上 使用的资源单元提供的 Iops 的下限；非必填。 |
| iopsWeight | 指定租户在该 zone 上 使用的资源单元提供的 Iops 权重。非必填，默认等于 1。 |
| logDiskSize | 指定租户在该 zone 上 使用的资源单元提供的日志盘规格。非必填，默认等于 3 倍的内存规格，最小值为 2Gi。 |

## 确认租户是否创建成功

创建租户后，执行以下语句，查看当前 Kubernetes 集群中是否有新创建的租户的 OBTenant 资源，并且该 OBTenant 资源的 `Status.status` 为 `running`，相关配置都会在 Status 中展示。

```shell
kubectl describe obtenants.oceanbase.oceanbase.com -n oceanbase t1

```

返回的示例结果如下：

```shell
Name:         t1
Namespace:    oceanbase
Labels:       <none>
Annotations:  <none>
API Version:  oceanbase.oceanbase.com/v1alpha1
Kind:         OBTenant
Metadata:
  Creation Timestamp:  2023-11-13T07:28:31Z
  Finalizers:
    finalizers.oceanbase.com.deleteobtenant
  Generation:        2
  Resource Version:  940236
  UID:               34036a49-26bf-47cf-8201-444b3850aaa2
Spec:
  Charset:             utf8mb4
  Connect White List:  %
  Credentials:
    Root:        t1-ro
    Standby Ro:  t1-ro
  Force Delete:  true
  Obcluster:     obcluster
  Pools:
    Priority:  1
    Resource:
      Iops Weight:    2
      Log Disk Size:  12Gi
      Max CPU:        1
      Max Iops:       1024
      Memory Size:    5Gi
      Min CPU:        1
      Min Iops:       1024
    Type:
      Is Active:  true
      Name:       Full
      Replica:    1
    Zone:         zone1
    Priority:     1
    Resource:
      Iops Weight:    2
      Log Disk Size:  12Gi
      Max CPU:        1
      Max Iops:       1024
      Memory Size:    5Gi
      Min CPU:        1
      Min Iops:       1024
    Type:
      Is Active:  true
      Name:       Full
      Replica:    1
    Zone:         zone2
    Priority:     3
    Resource:
      Iops Weight:    2
      Log Disk Size:  12Gi
      Max CPU:        1
      Max Iops:       1024
      Memory Size:    5Gi
      Min CPU:        1
      Min Iops:       1024
    Type:
      Is Active:  true
      Name:       Full
      Replica:    1
    Zone:         zone3
  Tenant Name:    t1
  Tenant Role:    PRIMARY
  Unit Num:       1
Status:
  Credentials:
    Root:        t1-ro
    Standby Ro:  t1-ro
  Resource Pool:
    Priority:  1
    Type:
      Is Active:  true
      Name:       FULL
      Replica:    1
    Unit Config:
      Iops Weight:    2
      Log Disk Size:  12884901888
      Max CPU:        1
      Max Iops:       1024
      Memory Size:    5368709120
      Min CPU:        1
      Min Iops:       1024
    Unit Num:         1
    Units:
      Migrate:
        Server IP:
        Server Port:  0
      Server IP:      10.42.0.189
      Server Port:    2882
      Status:         ACTIVE
      Unit Id:        1006
    Zone List:        zone1
    Priority:         1
    Type:
      Is Active:  true
      Name:       FULL
      Replica:    1
    Unit Config:
      Iops Weight:    2
      Log Disk Size:  12884901888
      Max CPU:        1
      Max Iops:       1024
      Memory Size:    5368709120
      Min CPU:        1
      Min Iops:       1024
    Unit Num:         1
    Units:
      Migrate:
        Server IP:
        Server Port:  0
      Server IP:      10.42.1.118
      Server Port:    2882
      Status:         ACTIVE
      Unit Id:        1007
    Zone List:        zone2
    Priority:         2
    Type:
      Is Active:  true
      Name:       FULL
      Replica:    1
    Unit Config:
      Iops Weight:    2
      Log Disk Size:  12884901888
      Max CPU:        1
      Max Iops:       1024
      Memory Size:    5368709120
      Min CPU:        1
      Min Iops:       1024
    Unit Num:         1
    Units:
      Migrate:
        Server IP:
        Server Port:  0
      Server IP:      10.42.0.190
      Server Port:    2882
      Status:         ACTIVE
      Unit Id:        1008
    Zone List:        zone3
  Status:             running
  Tenant Record Info:
    Charset:             utf8mb4
    Connect White List:  %
    Locality:            FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3
    Pool List:           pool_t1_zone1,pool_t1_zone2,pool_t1_zone3
    Primary Zone:        zone3;zone1,zone2
    Tenant ID:           1006
    Unit Num:            1
    Zone List:           zone1,zone2,zone3
  Tenant Role:           PRIMARY
Events:
  Type    Reason  Age                    From                 Message
  ----    ------  ----                   ----                 -------
  Normal          2m58s                  obtenant-controller  start creating
  Normal          115s                   obtenant-controller  create OBTenant successfully

```

## 后续操作

租户创建成功后，其管理员账号密码为 `spec.credentials.root` 字段指定的 secret 中包含的内容，若创建时没有指定，则密码为空。您可以使用 `obclient -h${podIP} -P2881 -uroot@tenantname -p -A` 或者 `mysql -h${podIP} -P2881 -uroot@tenantname -p -A` 语句登录数据库。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
