
# 创建DDM逻辑库
#### 功能介绍
创建DDM逻辑库。
#### 接口约束
创建前需确保已导入RDS实例，RDS实例状态正常且没有被其他DDM实例关联使用。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=DDM&api=CreateDatabase)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v1/{project_id}/instances/{instance_id}/databases
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                    |
|:---|:---|:---|:---|
| project_id  | 是    | String | 租户在某一region下的project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-ddm/ddm_api_01_0063.html)。 |
| instance_id | 是    | String | DDM实例ID。                                                                                                                                              |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                   |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务的"获取用户Token"接口来获取。 |
   
表3请求Body参数 
| 参数        | 是否必选 | 参数类型                                                                                | 描述          |
|:---|:---|:---|:---|
| databases | 是    | Array of [CreateDatabaseDetail] objects | 逻辑库相关信息的集合。 |
   
 表4CreateDatabaseDetail 
| 参数           | 是否必选 | 参数类型                                                                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| name         | 是    | String                                                              | 逻辑库名称，需要满足以下条件： - 长度为2-48个字符。  - 必须以小写字母开头。  - 可以包含小写字母、数字、下划线，不能包含大写字母和其它特殊字符。  - 禁用关键字： "information_schema"、"mysql"、"performance_schema"、"sys"。   最小长度：**2** 最大长度：**48** |
| shard_mode   | 是    | String                                                              | 逻辑库的拆分模式。 - cluster表示逻辑库是拆分模式。  - single表示逻辑库是非拆分模式。   枚举值： - **cluster**  - **single**                                                                |
| shard_number | 是    | Integer                                                             | 同一种工作模式下逻辑库分片的数量。 - shard_unit不为空， shard_unit与关联rds数量的乘积  - shard_unit为空，大于关联的RDS数量，小于等于关联rds数量\*64。                                                                                                                                                                                                                             |
| shard_unit   | 否    | Integer                                                             | 单个RDS上的逻辑库分片数。非必选 - 非拆分逻辑库，固定为1。  - 拆分逻辑库，大于等于1，小于等于64。   最小值：**1** 最大值：**64**                                                                                                                                                                                                                       |
| used_rds     | 是    | Array of [表5] objects | 逻辑库关联的RDS。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表5DatabaseInstabcesParam 
| 参数            | 是否必选 | 参数类型   | 描述            |
|:---|:---|:---|:---|
| id            | 是    | String | 逻辑库关联的RDS的ID。 |
| adminUser     | 是    | String | 关联RDS实例的用户。   |
| adminPassword | 是    | String | 关联RDS实例的密码。   |
   
#### 响应参数
**状态码： 200**
表6响应Body参数 
| 参数        | 参数类型                                                                                                   | 描述          |
|:---|:---|:---|
| databases | Array of [CreateDatabaseDetailResponses] objects | 逻辑库相关信息的集合。 |
   
 表7CreateDatabaseDetailResponses 
| 参数   | 参数类型   | 描述     |
|:---|:---|:---|
| name | String | 逻辑库名称。 |
   
**状态码： 400**
表8响应Body参数 
| 参数              | 参数类型   | 描述     |
|:---|:---|:---|
| errCode         | String | 业务错误码。 |
| externalMessage | String | 错误信息。  |
   
**状态码： 500**
表9响应Body参数 
| 参数              | 参数类型   | 描述     |
|:---|:---|:---|
| errCode         | String | 业务错误码。 |
| externalMessage | String | 错误信息。  |
   
#### 请求示例
创建逻辑库时不新建DDM账号，关联已有账号。
```
POST https://{endpoint}/v1/{project_id}/instances/{instance_id}/databases
{
  "databases" : [ {
    "name" : "mytestdb",
    "shard_mode" : "cluster",
    "shard_number" : 8,
    "shard_unit" : 8,
    "used_rds" : [ {
      "id" : "f296c394f13f48449d715bf99af07e59in01",
      "adminUser" : "root",
      "adminPassword" : "xxxxxx"
    } ]
  } ]
}
```
#### 响应示例
**状态码： 200**
OK
```
{
  "databases" : [ {
    "name" : "mytestdb"
  } ]
}
```
**状态码： 400**
bad request
```
{
  "externalMessage" : "Parameter error.",
  "errCode" : "DBS.280001"
}
```
**状态码： 500**
server error
```
{
  "externalMessage" : "Server failure.",
  "errCode" : "DBS.200412"
}
```
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 200 | OK           |
| 400 | bad request  |
| 500 | server error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ddm/ddm_api_01_0061.html)。
