---
title: "新建租户 | OceanBase 文档中心"
description: 新建租户 您可以通过 SQL 语句来新建租户。 通过 SQL 语句新建租户 OceanBase 数据库仅支持 MySQL 类型的租户。只有用 root 用户连接到 sys 租户（ root@sys ）才能执行 CREATE TENANT 命令去创建租户。创建新租户后，可以指定创建租户的类型和白名单。 下述展示了创建租…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.1.1 社区版

# 新建租户

更新时间：2024-07-04 16:05:20

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V3.1.1/zh-CN/600.administrator-guide/300.basic-database-management/500.tenant-management/300.create-a-tenant.md)  

您可以通过 SQL 语句来新建租户。

## 通过 SQL 语句新建租户

OceanBase 数据库仅支持 MySQL 类型的租户。只有用 root 用户连接到 sys 租户（`root@sys`）才能执行 `CREATE TENANT` 命令去创建租户。创建新租户后，可以指定创建租户的类型和白名单。

下述展示了创建租户命令的语法：

```sql
CREATE TENANT [IF NOT EXISTS] tenantname
     [tenant_characteristic_list]
     [tenant_variables_list]

tenant_characteristic_list:
    tenant_characteristic [, tenant_characteristic...]

tenant_characteristic:
    COMMENT 'string'
    | {CHARACTER SET | CHARSET} [=] value
    | REPLICA_NUM [=] num
    | ZONE_LIST [=] (zone [, zone])
    | PRIMARY_ZONE [=] zone
    | RESOURCE_POOL_LIST [=] (poolname)
    | {READ ONLY | READ WRITE}

tenant_variables_list:
    SET sys_variables_list
    | SET VARIABLES sys_variables_list
    | VARIABLES sys_variables_list

sys_variables_list:
    sys_variables [, sys_variables...]

sys_variables:
    sys_variable_name = expr

```

参数说明：

- 如果要创建的租户名已存在，并且没有指定 `IF NOT EXISTS`，则会出现错误。
 - 租户名的合法性和变量名一致，最长 30 个字符，字符只能是大小写英文字母、数字和下划线，而且必须以字母或下划线开头，并且不能是 OceanBase 数据库的关键字。
 - 在租户下可以指定资源池。
 - `RESOURCE_POOL_LIST` 为创建租户时的必填项。
 - `CREATE TENANT` 命令中的 `RESOURCE_POOL_LIST` 中，暂时仅支持一个资源池。

**示例 1** ：

下述语句展示了创建名为 `test_tenant` 的一个 3 副本的 MySQL 租户（创建新租户默认是 MySQL 租户）。

```sql
obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1')

```

**示例 2** ：

下述语句展示了创建租户后，直接通过修改变量 `ob_tcp_innvited_nodes` 的值为 `%` 以便允许任何客户端 IP 连接该租户。如果不调整，默认租户的连接方式为只允许本机的 IP 连接数据库。

```sql
obclient> CREATE TENANT IF NOT EXISTS test_tenant charset='utf8mb4', replica_num=3, zone_list=('zone1','zone2','zone3'), primary_zone='zone1;zone2,zone3', resource_pool_list=('pool1') SET ob_tcp_invited_nodes='%'

```

示例说明如下：

- `primary_zone` 指该租户的表的分区 Leader 所在的 Zone ，例如，`primary_ zone =' zone1; zone2, zone3'` 表示该租户的表的分区 Leader 在 `zone1` 上， 这时通过分号来分隔。
 - `zone2` 和 `zone3` 通过逗号分割，表示 `zone2` 和 `zone3` 是同一优先级，但是比 `zone1` 优先级低。
 - `primary_zone` 设置时，其值可以为 `RANDOM`（必须大写），表示指定租户所在的所有 Zone 作为 `PRIMARY_ZONE` 的第一优先级。

普通租户的内存最小规格必须大于等于 5 GB，否则创建租户失败。如果希望建立租户进行非常简单的功能测试，可以修改参数 `alter system __min_full_resource_pool_memory` 的值为 `1073741824` 来允许以最小 1 GB 内存的规格创建租户。

 上一篇 下一篇 ![有帮助](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) 咨询热线
