MySQL 公开API目录

API概览

云数据库MySQL提供以下API接口。

实例

API 描述
DescribeRegions 获取云数据库MySQL支持购买的站点区域
DescribeAvailableDBConfig 获取某个站点可购买的MySQL产品类型以及规格
CreateDBInstance 创建MySQL云数据库实例
DescribeDBInstances 查看MySQL实例列表
DescribeModifiableDBSpec 获取当前MySQL实例支持的配置变更的规格
ModifyDBInstanceSpec 修改数据库实例(包括常规实例和只读实例)规格或存储空间
DeleteDBInstance 删除MySQL实例

账号

API 描述
CreatePrivilegedAccount 创建账号
ModifyDbPrivilege 修改普通账号数据库权限
DeleteDbPrivilege 删除普通账号数据库权限
DescribeDbPrivileges 获取普通账号详细权限
DescribeDBAccount 获取账号列表
DeleteDBAccount 删除账号

备份

API 描述
CreateBackup 为实例创建一个备份集
DescribeBackups 查看备份集列表
DeleteBackup 删除数据备份文件
DownloadBackup 获取备份下载地址
ModifyDbBackupPolicy 修改云数据库MySQL高可用版自动备份设置

只读实例

API 描述
DescribeAvailableReadOnlyConfig 获取当前MySQL主从实例支持购买的只读实例规格
CreateReadOnlyDBInstance 为MySQL添加只读实例(目前只支持主从版)

监控

API 描述
DescribeDBInstancePerformance 获取云数据库MySQL监控指标

参数

API 描述
DescribeDBParameter 获取云数据库MySQL参数列表
DescribeDBParameterModifyHistory 获取云数据库MySQL参数修改历史记录
ModifyDBParameter 修改云数据库MySQL参数

错误码

HttpCode 错误码 描述
400 ArgMissing 缺少参数错误
400 InvalidParameter 参数错误
400 BadArgs 参数错误
400 UnsupportedOperation 操作不支持
404 ResourceNotFound 资源不存在
409 ResourceInUse 资源正在被其他任务占用,操作冲突
500 InternalError 内部错误
500 CreateOrderExcept 创建订单异常

访问地址

地区 访问地址
中国大陆 cdsapi.capitalonline.net
亚太地区 cdsapi-asia.capitalonline.net
欧美地区 cdsapi-us.capitalonline.net

1.DescribeRegions

Action:DescribeRegions

描述: 获取云数据库MySQL支持购买的站点区域。

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

返回参数:

名称 类型 描述
Message string 信息描述
Code string 状态码
Data list 数据
IsSaling int 站点是否能购买服务,1:站点支持购买;0:资源不足已下线
CityName string 城市名称
CityId string 城市编号
SiteName string 站点名称
RegionId string 站点编号
RegionName string 区域名称

请求示例:

  1. def get_mysql_zones():
  2. """
  3. 获取云数据库MySQL支持的站点区域
  4. """
  5. action = "DescribeRegions"
  6. method = "GET"
  7. param = {
  8. }
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  10. res = requests.get(url)
  11. result = json.loads(res.content)
  12. result = json.dumps(result) # json格式化
  13. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "CityId": "3082f45e-306e-11e7-9796-0050569b4d9c",
  5. "CityName": "洛杉矶",
  6. "IsSaling": 1,
  7. "RegionId": "US_LosAngeles_A",
  8. "RegionName": "北美地区",
  9. "SiteName": "洛杉矶1"
  10. }, {
  11. "CityId": "7b98a5d1-306e-11e7-9796-0050569b4d9c",
  12. "CityName": "法兰克福",
  13. "IsSaling": 1,
  14. "RegionId": "EUR_Germany_A",
  15. "RegionName": "欧洲地区",
  16. "SiteName": "德国1"
  17. }, {
  18. "CityId": "8737606f-306d-11e7-9796-0050569b4d9c",
  19. "CityName": "东京",
  20. "IsSaling": 1,
  21. "RegionId": "APAC_Tokyo_A",
  22. "RegionName": "亚太地区",
  23. "SiteName": "东京1"
  24. }, {
  25. "CityId": "27b57297-306d-11e7-9796-0050569b4d9c",
  26. "CityName": "香港",
  27. "IsSaling": 1,
  28. "RegionId": "CN_Hongkong_A",
  29. "RegionName": "亚太地区",
  30. "SiteName": "香港1"
  31. }, {
  32. "CityId": "a8937b00-306d-11e7-9796-0050569b4d9c",
  33. "CityName": "新加坡",
  34. "IsSaling": 1,
  35. "RegionId": "APAC_Singapore_A",
  36. "RegionName": "亚太地区",
  37. "SiteName": "新加坡1"
  38. }, {
  39. "CityId": "5c432e0e-306e-11e7-9796-0050569b4d9c",
  40. "CityName": "阿姆斯特丹",
  41. "IsSaling": 1,
  42. "RegionId": "EUR_Netherlands_A",
  43. "RegionName": "欧洲地区",
  44. "SiteName": "荷兰1"
  45. }, {
  46. "CityId": "154ed19e-306e-11e7-9796-0050569b4d9c",
  47. "CityName": "纽约",
  48. "IsSaling": 1,
  49. "RegionId": "US_NewYork_A",
  50. "RegionName": "北美地区",
  51. "SiteName": "纽约1"
  52. }, {
  53. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  54. "CityName": "北京",
  55. "IsSaling": 1,
  56. "RegionId": "CN_Beijing_B",
  57. "RegionName": "中国大陆",
  58. "SiteName": "北京2"
  59. }, {
  60. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  61. "CityName": "北京",
  62. "IsSaling": 1,
  63. "RegionId": "CN_Beijing_E",
  64. "RegionName": "中国大陆",
  65. "SiteName": "北京5"
  66. }, {
  67. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  68. "CityName": "北京",
  69. "IsSaling": 1,
  70. "RegionId": "CN_Beijing_A",
  71. "RegionName": "中国大陆",
  72. "SiteName": "北京1"
  73. }, {
  74. "CityId": "e48e2312-306d-11e7-9796-0050569b4d9c",
  75. "CityName": "达拉斯",
  76. "IsSaling": 1,
  77. "RegionId": "US_Dallas_A",
  78. "RegionName": "北美地区",
  79. "SiteName": "达拉斯1"
  80. }, {
  81. "CityId": "713d3745-306d-11e7-9796-0050569b4d9c",
  82. "CityName": "台北",
  83. "IsSaling": 1,
  84. "RegionId": "CN_Taipei_A",
  85. "RegionName": "亚太地区",
  86. "SiteName": "台北1"
  87. }, {
  88. "CityId": "123d0d01-306d-11e7-9796-0050569b4d9c",
  89. "CityName": "无锡",
  90. "IsSaling": 1,
  91. "RegionId": "CN_Wuxi_A",
  92. "RegionName": "中国大陆",
  93. "SiteName": "无锡1"
  94. }, {
  95. "CityId": "87fcbbd6-be0a-11e7-9d6b-0242ac110004",
  96. "CityName": "首尔",
  97. "IsSaling": 1,
  98. "RegionId": "APAC_Seoul_A",
  99. "RegionName": "亚太地区",
  100. "SiteName": "首尔1"
  101. }, {
  102. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  103. "CityName": "北京",
  104. "IsSaling": 1,
  105. "RegionId": "CN_Beijing_C",
  106. "RegionName": "中国大陆",
  107. "SiteName": "北京3"
  108. }, {
  109. "CityId": "c11a5abe-3f7e-11e7-86b1-0242ac11000e",
  110. "CityName": "广州",
  111. "IsSaling": 1,
  112. "RegionId": "CN_Guangzhou_A",
  113. "RegionName": "中国大陆",
  114. "SiteName": "广州1"
  115. }, {
  116. "CityId": "b44355d0-65e7-11e7-8ea9-0050569b651c",
  117. "CityName": "上海",
  118. "IsSaling": 1,
  119. "RegionId": "CN_Shanghai_A",
  120. "RegionName": "中国大陆",
  121. "SiteName": "上海1"
  122. }, {
  123. "CityId": "ea3ca775-306c-11e7-9796-0050569b4d9c",
  124. "CityName": "北京",
  125. "IsSaling": 1,
  126. "RegionId": "CN_Beijing_H",
  127. "RegionName": "中国大陆",
  128. "SiteName": "北京8"
  129. }],
  130. "Message": "Success."
  131. }

2.DescribeAvailableDBConfig

Action:DescribeAvailableDBConfig

描述: 获取某个站点可购买的MySQL产品类型以及规格

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
RegionId string 站点编号

请求示例:

  1. def get_mysql_spec_info():
  2. """
  3. 获取某个站点支持的MySQL产品类型以及规格
  4. """
  5. action = "DescribeAvailableDBConfig"
  6. method = "GET"
  7. param = {
  8. "RegionId": "********"
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. result = json.dumps(result) # json格式化
  14. print(result)

返回参数:

参数名 类型 说明
Code string 状态码
Data DataObj 可购买的MySQL产品类型以及规格数据对象
Message string 返回调用接口状态信息和code相对应,比如:Success, Error
TaskId string 任务Id, 暂时不支持根据任务查询任务状态

DataObj

参数名 类型 说明
ProductName string 产品名称,比如mysql
Products list of ProductObj 该类产品支持的产品列表
RegionId string 站点编号

ProductObj

参数名 类型 说明
Architectures list of ArchitectureObj 产品支持的架构列表
Version string 产品支持的版本

ArchitectureObj

参数名 类型 说明
ArchitectureName string 架构名称
ArchitectureType int 架构类型:
0-基础版
1-主从版
ComputeRoles list of ComputeRoleObj 支持的计算类型,不同的计算类型支持不同规格,并支持添加不同类型的硬盘
EnginesType string 引擎类型
NetworkLinks list of NetworkLinkObj 此架构支持的链路类型
SubProductName string 子产品名称,比如:MySQL 高可用版、MySQL 基础版

ComputeRoleObj

参数名 类型 说明
ComputeName string 计算类型名称, 比如:通用型
ComputeType int 支持的计算类型(目前仅支持通用型计算类型):
0-通用型
Standards StandardObj 该类型支持的规格

StandardObj

参数名 类型 说明
AttachDisk list of AttachDiskObj 该类型规格能够添加的磁盘类型列表
CpuRam list of CpuRamObj 支持的规格列表

AttachDiskObj

参数名 类型 说明
BasicIops string 基础的磁盘的iops
DiskMax int 单次支持扩容到最大磁盘容量为2000
DiskMaxExpand string 磁盘最大可扩容大小
DiskMin string 磁盘容量支持的最小值,起步为100
DiskName string 磁盘类型名称,包含SSD和性能型
SSD:SSD磁盘,磁盘IOPS默认为5000,可购买IOPS性能包
性能型:普通SSD盘,磁盘IOPS限定在3000
DiskStep string 磁盘扩容步长,步长大小=100
DiskUnit string 磁盘容量单位:GB
DiskValue string 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用)

CpuRamObj

参数名 类型 说明
CPU int 核心数量,单位:个
Name string 规格名称
PaasGoodsId int 具体的产品编号,根据产品编号确定购买哪一种规格
RAM int 内存大小,单位:GB

NetworkLinkObj

参数名 类型 说明
DescDetail string 链路类型描述
LinkType string 链路类型“英文”
Name string 链路类型“中文”

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "ProductName": "mysql",
  5. "Products": [
  6. {
  7. "Architectures": [
  8. {
  9. "ArchitectureName": "主从",
  10. "ArchitectureType": 1,
  11. "ComputeRoles": [
  12. {
  13. "ComputeName": "通用型",
  14. "ComputeType": 0,
  15. "Standards": {
  16. "AttachDisk": [
  17. {
  18. "BasicIops": "",
  19. "DiskMax": 2000,
  20. "DiskMaxExpand": 2000,
  21. "DiskMin": 100,
  22. "DiskName": "SSD",
  23. "DiskStep": 100,
  24. "DiskUnit": "G",
  25. "DiskValue": "ssd_disk"
  26. }
  27. ],
  28. "CpuRam": [
  29. {
  30. "CPU": 1,
  31. "Name": "1C2G",
  32. "PaasGoodsId": 17060,
  33. "RAM": 2
  34. }
  35. ]
  36. }
  37. }
  38. ],
  39. "EnginesType": [],
  40. "NetworkLinks": [
  41. {
  42. "DescDetail": "默认链路:服务实例占用VDC私有网络IP地址,适用于对延迟敏感类型的应用。",
  43. "LinkType": "default_link",
  44. "Name": "默认链路"
  45. }
  46. ],
  47. "SubProductName": "MySQL高可用版"
  48. }
  49. ],
  50. "Version": "8.0"
  51. }
  52. ],
  53. "RegionId": "*******"
  54. },
  55. "Message": "success",
  56. "TaskId": ""
  57. }

3.CreateDBInstance

Action:CreateDBInstance

描述: 创建MySQL云数据库实例

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
RegionId string 站点编号
VdcId string 数据中心的编号
BasePipeId string 数据中心的私网编号,创建服务将按这个私网分配IP
InstanceName string 实例名称
PaasGoodsId int 产品的规格编号
DiskType string 磁盘类型 只能选择支持的磁盘类型
DiskValue int 磁盘大小
TimeZone string 实例的UTC时区,默认值根据地域不同变化,输入参数范围:
[“-12:00”,”-11:00”,”-10:00”,”-09:00”,”-08:00”,”-07:00”,”-06:00”,”-05:00”,”-04:00”,”-03:00”,”-02:00”,”-01:00”,”+00:00”,”+01:00”,”+02:00”,”+03:00”,”+04:00”,”+05:00”,”+05:30”,”+06:00”,”+07:00”,”+08:00”,”+09:00”,”+10:00”,”+11:00”,”+12:00”,”+13:00”,]
Amount int 购买的数量,一次最多购买10个

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 包含任务编码和实例编码列表
InstancesUuid list 实例编码
TaskId string 任务id

请求示例:

  1. def create_mysql():
  2. """
  3. 创建MySQL实例
  4. """
  5. action = "CreateDBInstance"
  6. method = "POST"
  7. param = {}
  8. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  9. body = {
  10. "RegionId": "******",
  11. "VdcId": "******",
  12. "BasePipeId": "******",
  13. "InstanceName": "******",
  14. "PaasGoodsId": "******",
  15. "DiskType": "******",
  16. "DiskValue": 100,
  17. "Password": "******",
  18. "Amount": 1
  19. }
  20. res = requests.post(url, json=body)
  21. result = json.loads(res.content)
  22. print(result)

返回示例:

  1. {
  2. "Message": "Success.",
  3. "Code": "Success",
  4. "Data": {
  5. "InstancesUuid":["5d74bb81-0473-464d-b15b-0ae418619248",]
  6. },
  7. "TaskId": "**********"
  8. }

4.DescribeDBInstances

Action:DescribeDBInstances

描述: 查看MySQL实例列表(支持常见字段过滤:实例编号、实例名称、实例IP)

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要过滤的实例编号
InstanceName string 要过滤的实例名称
IP string 要过滤的实例IP

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data list 数据
RelationService dict 相关联的服务实例
DisplayName string 站点名称
VdcName string 数据中心名称
IP string 数据库的连接的IP
Port int 连接的端口
Cpu int CPU大小
Ram int 内存,单位MB
Disks int 磁盘大小,单位GB
RegionId string 站点编号
VdcId string 数据中心的编号
Master_Info dict 从属集群,当实例为只读实例时有值
LinkTypeStr string 链路类型名称
RoGroups list 只读实例列表
SubProductName string 子产品的名字
Version string MySQL的版本
LinkType string 链路类型:英文
Status string 实例状态
StatusStr string 状态对应的中文
InstanceUuid string 实例编号
InstanceName string 实例名称
CreatedTime string 实例创建时间

请求示例:

  1. def get_mysql_instances_list():
  2. """
  3. 获取MySQL实例列表(支持常见字段过滤、instance_uuid/instance_name/ip)
  4. """
  5. action = "DescribeDBInstances"
  6. method = "GET"
  7. param = {
  8. "IP": "66.66" # 可根据可选字段过滤
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. result = json.dumps(result) # json格式化
  14. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "Cpu": 4,
  5. "CreatedTime": "2020-05-03 22:16:22",
  6. "Disks": 200,
  7. "DisplayName": "亚太地区-香港-可用区A",
  8. "IP": "66.66.0.46",
  9. "InstanceName": "test-mysql",
  10. "InstanceUuid": "5ac7c945-ae47-4bbf-82e6-2823d64b57c5",
  11. "LinkType": "default_link",
  12. "LinkTypeStr": "默认链路",
  13. "MasterInfo": "",
  14. "Port": 6033,
  15. "Ram": 8192,
  16. "RegionId": "CN_Hongkong_A",
  17. "RelationService": null,
  18. "ResourceId": "45533175-2c4b-4e5f-8280-85b68e932381",
  19. "RoGroups": [{
  20. "Cpu": 4,
  21. "CreateTime": "2020-05-04 00:37:13",
  22. "InpaasId": "591f61a6-2197-4b14-bd1a-82a8ee345647",
  23. "Ip": "66.66.0.48",
  24. "Locked": "",
  25. "Message": "运行中",
  26. "Port": 6033,
  27. "Progress": 100,
  28. "Ram": 8192,
  29. "ServiceId": "5f88d00f-d01b-4103-ba29-5810b027f7c9",
  30. "ResourceId": "45533175-2c4b-4e5f-8280-85b68e932381",
  31. "ServiceName": "mysql_for_readonly",
  32. "Status": "RUNNING",
  33. "SvcType": "mysql-readonly"
  34. }],
  35. "Status": "RUNNING",
  36. "StatusStr": "运行中",
  37. "SubProductName": "MySQL 高可用版\n",
  38. "VdcId": "d459c74b-d60e-4f28-adbb-67be402f76f3",
  39. "VdcName": "香港PaaS1",
  40. "Version": "5.7.24"
  41. }],
  42. "Message": "Success."
  43. }

5.CreatePrivilegedAccount

Action:CreatePrivilegedAccount

描述: 创建用户账号

请求地址:cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要初始化的实例编号
AccountName string 账户名称
Password string 账户密码
AccountType string 账户类型,支持创建高权限用户与普通用户。取值范围:
高权限用户:”Super”
普通用户:”Normal”
注意:一个实例只能有一个高权限账号
Description string 账户描述,不传默认为空

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务id

请求示例:

  1. def create_mysql_super_account(instance_uuid, ):
  2. """
  3. 创建MySQL高权限用户
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "CreatePrivilegedAccount"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "AccountName": "******",
  13. "Password": "******",
  14. "AccountType": "Super",
  15. "Description": "******"
  16. }
  17. res = requests.post(url, json=body)
  18. result = json.loads(res.content)
  19. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": ""
  6. }

6.ModifyDbPrivilege

Action:ModifyDbPrivilege

描述: 更新(添加、修改)云数据库MySQL普通用户权限

请求地址:cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要更新用户权限的实例编号
AccountName string 普通用户的账号名称
Operations list of Operations 账号赋权数据库与对应权限列表

OperationsObj

参数名 必选 类型 说明
DBName string 需要赋权的数据库名称
Privilege string 数据库对应账号权限。
ReadWrite:读写权限
DMLOnly:仅DML
ReadOnly:只读权限
DDLOnly:仅DDL

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码

请求示例:

  1. def modify_mysql_privilege(instance_uuid):
  2. """
  3. 更新(添加、修改)云数据库MySQL普通用户权限
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "ModifyDbPrivilege"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "AccountName": "pt",
  13. "Operations": [{
  14. "DBName": "test2",
  15. "Privilege": "ReadWrite"
  16. }, {
  17. "DBName": "test1",
  18. "Privilege": "DDLOnly"
  19. }]
  20. }
  21. res = requests.post(url, json=body)
  22. result = json.loads(res.content)
  23. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Message": "Success."
  4. }

7.DeleteDbPrivilege

Action:DeleteDbPrivilege

描述: 删除云数据库MySQL普通用户权限。

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要删除用户权限的实例编号
AccountName string 普通用户的账号名称
DBNames list of string 需要删除权限的数据库名称

返回参数:

参数名 类型 说明
Code string 状态码
Message string 信息描述

请求示例:

  1. def delete_user_privilege(instance_uuid):
  2. """
  3. 删除云数据库MySQL普通用户权限
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "DeleteDbPrivilege"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "AccountName": "pt",
  13. "DBNames": ["test"]
  14. }
  15. res = requests.post(url, json=body)
  16. result = json.loads(res.content)
  17. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Message": "success"
  4. }

8.DescribeDbPrivileges

Action:DescribeDbPrivileges

描述: 获取云数据库MySQL普通用户详细权限。

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

返回参数:

参数名 类型 说明
Code string 状态码
Data DataObj MySQL普通用户权限明细数据集合
Message string 返回调用接口状态信息和code相对应,比如:Success, Error

查询权限DataObj

参数名 类型 说明
ReadWrite string 读写权限详细权限说明
DMLOnly string 仅DML权限详细权限说明
ReadOnly string 只读权限详细权限说明
DDLOnly string 仅DDL权限详细权限说明

请求示例:

  1. def get_mysql_user_privileges():
  2. """
  3. 获取云数据库MySQL普通用户详细权限
  4. """
  5. action = "DescribeDbPrivileges"
  6. method = "GET"
  7. param = {
  8. }
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  10. res = requests.get(url)
  11. result = json.loads(res.content)
  12. result = json.dumps(result) # json格式化
  13. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "DDLOnly": "CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE",
  5. "DMLOnly": "SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, SHOW VIEW, EVENT, TRIGGER",
  6. "ReadOnly": "SELECT, LOCK TABLES, SHOW VIEW",
  7. "ReadWrite": "SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER"
  8. },
  9. "Message": "success"
  10. }

9.DescribeDBAccount

Action:DescribeDBAccount

描述: 获取云数据库MySQL用户

请求地址:cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data list of DataObj 实例当前用户列表信息

查询用户DataObj

参数名 类型 说明
AccountType string 账号类型
高权限用户:”Super”
普通用户:”Normal”
ServiceId string 账号所属实例编号
AccountStatus string 账号状态
processing:处理中
available:已激活
unavailable:未激活
AccountName string 账号名称
AccountDescription string 账号描述
DatabasePrivileges list of DatabasePrivilegesObj 数据库权限详情

DatabasePrivilegesObj

参数名 类型 说明
AccountPrivilegeType string 数据库对应账号权限。
ReadWrite:读写权限
DMLOnly:仅DML
ReadOnly:只读权限
DDLOnly:仅DDL
DBName string 已授权数据库名称
TableName string 已授权数据表名称
AccountPrivilegeDetail string 账号权限详情

请求示例:

  1. def get_mysql_account():
  2. """
  3. 获取云数据库MySQL用户
  4. """
  5. action = "DescribeDBAccount"
  6. method = "GET"
  7. param = {
  8. "InstanceUuid": "********************"
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. result = json.dumps(result) # json格式化
  14. print(result)

返回示例:

  1. {
  2. "Message": "success",
  3. "Code": "Success",
  4. "Data": [{
  5. "AccountType": "Super",
  6. "ServiceId": "******************",
  7. "AccountStatus": "available",
  8. "DatabasePrivileges": [],
  9. "AccountName": "admin",
  10. "AccountDescription": "123123"
  11. }, {
  12. "AccountType": "Normal",
  13. "ServiceId": "******************",
  14. "AccountStatus": "available",
  15. "DatabasePrivileges": [{
  16. "AccountPrivilegeType": "ReadWrite",
  17. "DBName": "test",
  18. "TableName": "*",
  19. "AccountPrivilegeDetail": "SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER"
  20. }],
  21. "AccountName": "pt",
  22. "AccountDescription": ""
  23. }]
  24. }

10.DeleteDBAccount

Action:DeleteDBAccount

描述: 删除云数据库MySQL用户

请求地址:cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
AccountName string 需删除的账号名称

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data Object 数据
TaskId string 任务编号

请求示例:

  1. def delete_user(instance_uuid):
  2. """
  3. 删除云数据库MySQL用户
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "DeleteDBAccount"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": "**************",
  12. "AccountName": "root",
  13. }
  14. res = requests.post(url, json=body)
  15. result = json.loads(res.content)
  16. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success",
  5. "TaskId": ""
  6. }

11.DescribeModifiableDBSpec

Action:DescribeModifiableDBSpec

描述: 获取当前MySQL实例支持的配置变更的规格

请求地址:cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要初始化的实例编号

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
ProductName string 产品名称
CpuRam list 支持的规格列表
PaasGoodsId int 具体的产品编号,用户确定购买哪一种规格
AttachDisk list 该类型规格能够添加的磁盘类型
DiskMax int 单次支持最大规格的磁盘
DiskValue string 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用)
BasicIops string 基础的磁盘的IOPS
DiskUnit string 磁盘规格单位
DiskName string 磁盘类型名称
DiskMaxExpand string 磁盘最大可扩容大小
DiskMin string 磁盘最小大小
DiskStep string 磁盘扩容大小

请求示例:

  1. def get_mysql_modifiable_spec(instance_uuid):
  2. """
  3. 获取当前MySQL实例支持的配置变更的规格
  4. :param instance_uuid: 实例编号
  5. :return:
  6. """
  7. action = "DescribeModifiableDBSpec"
  8. method = "GET"
  9. param = {
  10. "InstanceUuid": instance_uuid
  11. }
  12. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  13. res = requests.get(url)
  14. result = json.loads(res.content)
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "AttachDisk": [{
  5. "BasicIops": "3000",
  6. "DiskMax": 2000,
  7. "DiskMaxExpand": 2000,
  8. "DiskMin": 100,
  9. "DiskName": "性能型",
  10. "DiskStep": 100,
  11. "DiskUnit": "G",
  12. "DiskValue": "high_disk"
  13. }],
  14. "CpuRam": [{
  15. "CPU": 2,
  16. "N": "2C4G",
  17. "PaasGoodsId": 6704,
  18. "RAM": 4
  19. }, {
  20. "CPU": 4,
  21. "Name": "4C8G",
  22. "PaasGoodsId": 6707,
  23. "RAM": 8
  24. }, {
  25. "CPU": 8,
  26. "Name": "8C16G",
  27. "PaasGoodsId": 6710,
  28. "RAM": 16
  29. }, {
  30. "CPU": 8,
  31. "Name": "8C32G",
  32. "PaasGoodsId": 6716,
  33. "RAM": 32
  34. }],
  35. "ProductName": "MySQL 高可用版\n",
  36. "RegionId": "CN_Hongkong_A"
  37. },
  38. "Message": "Success.",
  39. "TaskId": ""
  40. }

12.ModifyDBInstanceSpec

Action:ModifyDBInstanceSpec

描述: 修改数据库实例(包括常规实例和只读实例)规格或存储空间

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要修改配置的实例编号
PaasGoodsId int 变更后规格的商品编号
DiskType string 磁盘类型,磁盘的添加类型。只能跟最开始购买时候类型一致。不能一个实例加多种类型磁盘,比如最开始添加高性能磁盘,后面也只能选择添加高性能磁盘
DiskValue string 新增磁盘大小

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务id

请求示例:

  1. def modify_mysql_spec(instance_uuid, ):
  2. """
  3. 修改MySQL规格(本方法同时修改了规格及加盘,如果单独修改规格,则只需传PaasGoodsId,单独加盘,需同时传DiskType、DiskValue)
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "ModifyDBInstanceSpec"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "PaasGoodsId": "******",
  13. "DiskType": "******",
  14. "DiskValue": 100,
  15. }
  16. res = requests.post(url, json=body)
  17. result = json.loads(res.content)
  18. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": "***********"
  6. }

13.DeleteDBInstance

Action:DeleteDBInstance

描述: 删除MySQL实例

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务id

请求示例:

  1. def delete_mysql(instance_uuid, ):
  2. """
  3. 删除MySQL实例
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "DeleteDBInstance"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. }
  13. res = requests.post(url, json=body)
  14. result = json.loads(res.content)
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": ""
  6. }

14.DescribeAvailableReadOnlyConfig

Action:DescribeAvailableReadOnlyConfig

描述: 获取当前MySQL主从实例支持购买的只读实例规格

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要初始化的实例编号

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
SubProductName string 子产品的名称
Version string 产品支持的版本
Architectures string 产品支持的架构
ArchitectureName string 架构名称
ProductId string 产品的id
ProductType string 产品类型
ComputeRoles list 支持的计算类型,不通的类型支持不通的规格和支持的添加不通类型的硬盘
Standards dict 该类型支持的规格
CpuRam list 支持的规格信息,以及以下商品规格支持的磁盘类型
PaasGoodsId int 具体的产品编号,用户确定购买哪一种规格(创建服务时候使用)
AttachDisk list 该类型规格能够添加的磁盘类型
DiskMax int 单次支持最大规格的磁盘
DiskValue string 磁盘类型,用于创建服务实例指定磁盘类型 (创建服务时候使用)
AttachDisk string 该类型规格能够添加的磁盘类型
BasicIops string 基础的磁盘的iops
DiskUnit string 磁盘规格
DiskName string 磁盘类型名称

请求示例:

  1. def get_mysql_modifiable_spec(instance_uuid):
  2. """
  3. 获取当前MySQL实例支持的配置变更的规格
  4. :param instance_uuid: 实例编号
  5. :return:
  6. """
  7. action = "DescribeModifiableDBSpec"
  8. method = "GET"
  9. param = {
  10. "InstanceUuid": instance_uuid
  11. }
  12. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  13. res = requests.get(url)
  14. result = json.loads(res.content)
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "AttachDisk": [{
  5. "BasicIops": "3000",
  6. "DiskMax": 2000,
  7. "DiskMaxExpand": 2000,
  8. "DiskMin": 100,
  9. "DiskName": "性能型",
  10. "DiskStep": 100,
  11. "DiskUnit": "G",
  12. "DiskValue": "high_disk"
  13. }],
  14. "CpuRam": [{
  15. "CPU": 2,
  16. "N": "2C4G",
  17. "PaasGoodsId": "******",
  18. "RAM": 4
  19. }, {
  20. "CPU": 4,
  21. "Name": "4C8G",
  22. "PaasGoodsId": "******",
  23. "RAM": 8
  24. }, {
  25. "CPU": 8,
  26. "Name": "8C16G",
  27. "PaasGoodsId": "******",
  28. "RAM": 16
  29. }, {
  30. "CPU": 8,
  31. "Name": "8C32G",
  32. "PaasGoodsId": "******",
  33. "RAM": 32
  34. }],
  35. "ProductName": "MySQL 高可用版\n",
  36. "RegionId": "******"
  37. },
  38. "Message": "Success.",
  39. "TaskId": ""
  40. }

15.CreateReadOnlyDBInstance

Action:CreateReadOnlyDBInstance

描述: 为MySQL添加只读实例(目前只支持主从版)

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号,为该数据库添加只读实例
InstanceName string 只读实例名称
PaasGoodsId int 只读实例商品规格,要大于等于主实例规格
DiskType string 磁盘类型
DiskValue int 磁盘大小,只读实例磁盘规格不能低于主实例
TestGroupId int 是否使用测试组计费
Amount int 购买的数量一次最多购买三个

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务id

请求示例:

  1. def create_mysql_for_readonly(instance_uuid):
  2. """
  3. 创建MySQL只读实例
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "CreateReadOnlyDBInstance"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "InstanceName": "mysql_for_readonly",
  13. "PaasGoodsId": "6707",
  14. "DiskType": "high_disk",
  15. "DiskValue": 400, # 磁盘大小必须大于主实例
  16. "Amount": 1
  17. }

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": "***********"
  6. }

16.CreateBackup

Action:CreateBackup

描述: 为实例创建一个备份集,支持云数据库MySQL主从版实例和集群版实例

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
BackupType string 备份类型,取值范围:
物理全备份:”physical-backup”
逻辑备份:”logical-backup”
Desc string 备份的描述,不传默认为空字符串
DBList list 当备份类型为逻辑备份时,用于指定数据库备份,
不填默认为整个实例备份

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务编号

请求示例:

  1. def create_backup(instance_uuid):
  2. """
  3. 创建MySQL备份
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "CreateBackup"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "BackupType": "physical-backup", # 目前只支持物理备份
  13. "Desc": "test-openapi-python",
  14. "DBList":[
  15. "test1",
  16. "test2"
  17. ]
  18. }
  19. res = requests.post(url, json=body)
  20. result = json.loads(res.content)
  21. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": "***********"
  6. }

17.DescribeBackups

Action:DescribeBackups

描述: 查看备份集列表

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
BackupId string 备份id
Status string 备份状态
BackupType string 备份类型,取值范围:
物理全备份:”physical-backup”
逻辑备份:”logical-backup”
StartTime string 开始时间
EndTime string 结束时间
BackupMode string 备份策略(自动备份、手动备份)
BackupSize string 备份文件大小,单位字节
Desc string 备份描述
BackupStrategy string 备份范围,取值范围:
整个实例:”instance”
指定数据库:”db”

请求示例:

  1. def get_mysql_backups(instance_uuid):
  2. """
  3. 查看备份集列表
  4. :param instance_uuid: 实例编号
  5. :return:
  6. """
  7. action = "DescribeBackups"
  8. method = "GET"
  9. param = {
  10. "InstanceUuid": instance_uuid
  11. }
  12. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  13. res = requests.get(url)
  14. result = json.loads(res.content)
  15. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "BackupId": "**************************",
  5. "BackupMode": "auto",
  6. "BackupSize": 677496,
  7. "BackupType": "logical-backup",
  8. "Desc": "",
  9. "EndTime": "2020-06-18 04:10:13",
  10. "InstanceId": "**************************",
  11. "StartTime": "2020-06-18 04:09:59",
  12. "Status": "finished",
  13. "BackupStrategy":"db"
  14. }, {
  15. "BackupId": "**************************",
  16. "BackupMode": "auto",
  17. "BackupSize": 677494,
  18. "BackupType": "physical-backup",
  19. "Desc": "",
  20. "EndTime": "2020-06-17 04:10:22",
  21. "InstanceId": "**************************",
  22. "StartTime": "2020-06-17 04:10:08",
  23. "Status": "finished",
  24. "BackupStrategy":"instance"
  25. }, {
  26. "BackupId": "**************************",
  27. "BackupMode": "auto",
  28. "BackupSize": 677498,
  29. "BackupType": "physical-backup",
  30. "Desc": "",
  31. "EndTime": "2020-06-16 04:10:17",
  32. "InstanceId": "**************************",
  33. "StartTime": "2020-06-16 04:10:03",
  34. "Status": "finished",
  35. "BackupStrategy":"instance"
  36. }, {
  37. "BackupId": "**************************",
  38. "BackupMode": "manual",
  39. "BackupSize": 677484,
  40. "BackupType": "physical-backup",
  41. "Desc": "",
  42. "EndTime": "2020-06-15 15:04:59",
  43. "InstanceId": "**************************",
  44. "StartTime": "2020-06-15 15:04:41",
  45. "Status": "finished",
  46. "BackupStrategy":"instance"
  47. }],
  48. "Message": "Success."
  49. }

18.DeleteBackup

Action:DeleteBackup

描述: 删除数据备份文件

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
BackupId string 备份编号

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
TaskId string 任务编号

请求示例:

  1. def delete_backup(instance_uuid, backupid):
  2. """
  3. 删除数据备份文件
  4. :param backupid: 备份编号
  5. :param instance_uuid: 实例编号
  6. """
  7. action = "DeleteBackup"
  8. method = "POST"
  9. param = {}
  10. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  11. body = {
  12. "InstanceUuid": instance_uuid,
  13. "BackupId": backupid,
  14. }
  15. res = requests.post(url, json=body)
  16. result = json.loads(res.content)
  17. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Success.",
  5. "TaskId": "***********"
  6. }

19.DownloadBackup

Action:DownloadBackup

描述: 获取备份下载地址

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
BackupId string 备份编号

返回参数:

参数名 类型 说明
Message string 信息描述
Code string 状态码
Data dict 数据
BackupId string 备份编号
Status string 备份状态
BackupType string 备份类型,取值范围:
物理全备份:”physical-backup”
逻辑备份:”logical-backup”
StartTime string 备份的开始时间
EndTime string 备份的结束时间
BackupMode ststringr 备份策略(自动或者手动备份)
BackupSize string 备份文件大小,单位字节
Desc string 备份的描述(手动备份可以自定义内容),自动备份为空字符串
BackupDownloadUrl string 公网下载地址
BackupIntranetDownloadUrl string 内网下载地址
BackupStrategy string 备份范围,取值范围:
整个实例:”instance”
指定数据库:”db”

请求示例:

  1. def get_backup_describe(instance_uuid, backupid):
  2. """
  3. 获取备份详情
  4. :param backupid: 备份编号
  5. :param instance_uuid: 实例编号
  6. :return:
  7. """
  8. action = "DownloadBackup"
  9. method = "GET"
  10. param = {
  11. "InstanceUuid": instance_uuid,
  12. "BackupId": backupid
  13. }
  14. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  15. res = requests.get(url)
  16. result = json.loads(res.content)
  17. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "BackupDownloadUrl": "https://gic.***************",
  5. "BackupIntranetDownloadUrl": "http://88.***************",
  6. "BackupMode": "auto",
  7. "BackupSize": 68140,
  8. "BackupType": "physical-backup",
  9. "Desc": "",
  10. "EndTime": "2020-06-18 04:00:26",
  11. "InstanceId": "***************",
  12. "StartTime": "2020-06-18 04:00:06",
  13. "Status": "finished",
  14. "BackupStrategy":"instance"
  15. },
  16. "Message": "Success.",
  17. "TaskId": ""
  18. }

20.ModifyDbBackupPolicy

Action:ModifyDbBackupPolicy

描述: 修改云数据库MySQL高可用版自动备份设置。

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 要修改备份设置的实例编号
DataBackups object of DataBackups 备份设置

DataBackupsObj

参数名 必选 类型 说明
TimeSlot string 备份时间段,以整点开始,整点结束,间隔为一小时。
输入参数范围:[“00:00-01:00”,”01:00-02:00”,”02:00-03:00”,”03:00-04:00”,”04:00-05:00”,”05:00-06:00”,”06:00-07:00”,”07:00-08:00”,”08:00-09:00”,”09:00-10:00”,”10:00-11:00”,”11:00-12:00”,”12:00-13:00”,”13:00-14:00”,”14:00-15:00”,”15:00-16:00”,”16:00-17:00”,”17:00-18:00”,”18:00-19:00”,”19:00-20:00”,”20:00-21:00”,”21:00-22:00”,”22:00-23:00”,”23:00-24:00”]
DateList list of string 备份周期,输入参数范围:[“0”,”1”,”2”,”3”,”4”,”5”,”6”],0为星期日,1为星期一,以此类推
Sign int 自动备份开关,关闭:0 ,开启:1

返回参数:

参数名 类型 说明
Code string 状态码
Message string 信息描述

请求示例:

  1. def modify_mysql_backup_policy(instance_uuid):
  2. """
  3. 修改云数据库MySQL高可用版自动备份设置
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "ModifyDbBackupPolicy"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": instance_uuid,
  12. "DataBackups": {
  13. "TimeSlot": "13:00-14:00",
  14. "DateList": ["0", "1", "2", "3", "4", "5", "6"],
  15. "Sign": 1
  16. }
  17. }
  18. res = requests.post(url, json=body)
  19. result = json.loads(res.content)
  20. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Message": "success"
  4. }

21.DescribeDBInstancePerformance

Action:DescribeDBInstancePerformance

描述: 获取云数据库MySQL监控指标

请求地址: http://cdsapi.capitalonline.net/paas/monitor

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
MetricKey string 可选指标参数(见下表)
StartTime string 开始时间
EndTime string 结束时间

性能参数表:

API参数名 类别 类型 单位 含义
mysql_cpu_usage resources gauge 百分比 cpu使用率
mysql_mem_usage resources gauge 百分比 内存使用率
mysql_space_usage resources gauge 百分比 挂载的数据磁盘容量使用百分比
mysql_network_trffice resources gauge MB/s 业务网卡流量大小每秒,包括进入流量和出去流量
mysql_sessions engine gauge 当前打开的连接的数量
mysql_slow_queries engine gauge 查询时间超过 long_query_time 秒的查询的个数

时间粒度:

监控粒度自适应方法如下:

时间跨度 监控粒度 自适应说明 保留时长
(0h, 4h] 30s 时间跨度在4小时内,监控粒度为5秒 1天
(4h, 2d] 1min 时间跨度超过4小时,但在2天内,监控粒度调整为1分钟 15天
(2d, 10d] 5min 时间跨度超过2天,但在10天内,监控粒度调整为5分钟 31天
(10d, 30d] 1h 时间跨度超过10天,但在30天内,监控粒度调整为1小时 62天

返回参数

参数名 类型 说明
Message str 信息描述
Code str 状态码
Data dict 数据
InstanceUuid str 实例编号
ProductType str 产品类型
MetricKey string 性能指标参数
Period int 监控粒度(根据时间跨度自适应监控粒度,单位为秒)
StartTime string 开始时间
EndTime string 结束时间
DataPoints list 监控数据集合
MetricName string 性能指标名称
MetricType string 指标类型(gauge,counter)
MonitorType list 监控类型(resources,engine, engine_extension, deploy)
Values list 监控数据列表
Value float 监控数值
DataTime string 监控时间点

请求示例:

  1. def get_instance_Performance(instance_uuid, metric_key, start_time, end_time):
  2. """
  3. 获取MySQL监控
  4. :param instance_uuid: 实例uuid
  5. :param metric_key: 性能指标参数
  6. :param start_time: 开始时间
  7. :param end_time: 结束时间
  8. """
  9. action = "DescribeDBInstancePerformance"
  10. method = "POST"
  11. param = {}
  12. url = get_signature(action, AccessKey, SecretAccessKey, method, monitor_url, param=param)
  13. body = {
  14. "InstanceUuid": instance_uuid,
  15. "MetricKey": metric_key,
  16. "StartTime": start_time,
  17. "EndTime": end_time
  18. }
  19. res = requests.post(url, json=body).json()
  20. print(res)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "DataPoints": [{
  5. "MetricName": "slow_queries",
  6. "MetricType": "counter",
  7. "MonitorType": "engine",
  8. "Unit": "次",
  9. "Values": [{
  10. "DateTime": "2020-11-03 14:33:24",
  11. "Value": 4
  12. }, {
  13. "DateTime": "2020-11-03 14:33:54",
  14. "Value": 15
  15. }, {
  16. "DateTime": "2020-11-03 14:34:24",
  17. "Value": 35
  18. }, {
  19. "DateTime": "2020-11-03 14:34:54",
  20. "Value": 67
  21. }]
  22. }],
  23. "EndTime": "2020-11-03 14:35:00",
  24. "InstanceUuid": "b6120f04-63ab-491c-9049-54fca54102bf",
  25. "MetricKey": "mysql_slow_queries",
  26. "Period": 30,
  27. "ProductType": "mysql-replication",
  28. "StartTime": "2020-11-03 14:28:00"
  29. },
  30. "Message": "success",
  31. "TaskId": ""
  32. }

22.DescribeDBParameter

Action:DescribeDBParameter

描述: 获取云数据库MySQL参数列表。

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号

返回参数:

名称 类型 描述
Message string 信息描述
Code string 状态码
Data DataObj 数据

查询参数DataObj

名称 类型 描述
Parameters list of ParametersObj 参数信息

ParametersObj

名称 类型 描述
DefaultValue string 参数默认值
CurrentValue string 运行参数值
Description string 参数描述
IsModify string 是否可修改
CheckingCode string 可修改参数值
IsRestart string 是否重启
Name string 参数名

请求示例:

  1. def get_mysql_parameter_info():
  2. """
  3. 获取MySQL参数列表
  4. """
  5. action = "DescribeDBParameter"
  6. method = "GET"
  7. param = {
  8. "InstanceUuid": "********************"
  9. }
  10. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  11. res = requests.get(url)
  12. result = json.loads(res.content)
  13. result = json.dumps(result) # json格式化
  14. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {
  4. "Parameters": [{
  5. "CheckingCode": "[10-84]",
  6. "CurrentValue": "84",
  7. "DefaultValue": "84",
  8. "Description": "Maximum length of words that are stored in an InnoDB FULLTEXT index.",
  9. "IsModify": "true",
  10. "IsRestart": "true",
  11. "Name": "innodb_ft_max_token_size"
  12. }]
  13. },
  14. "Message": "success"
  15. }

23.DescribeDBParameterModifyHistory

Action:DescribeDBParameterModifyHistory

描述: 获取云数据库MySQL参数修改历史。

请求地址: cdsapi.capitalonline.net/mysql

请求方法: GET

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
StartTime string 开始时间
EndTime string 结束时间

返回参数:

名称 类型 描述
Message string 信息描述
Code string 状态码
Data DataObj 数据

查询参数修改历史DataObj

名称 类型 描述
IsValid bool 是否生效
ModifyTime string 变更时间
ModifyRole string 操作者
OldParameterValue string 变更前的参数值
NewParameterValue string 变更后的参数值
StatusMessage string 状态描述
ParameterName string 参数名

请求示例:

  1. def get_mysql_parameter_history():
  2. """
  3. 获取MySQL参数修改历史
  4. """
  5. action = "DescribeDBParameterModifyHistory"
  6. method = "GET"
  7. param = {
  8. "InstanceUuid": "********************",
  9. "StartTime": "2022-02-01 17:16:08",
  10. "EndTime": "2022-02-18 17:16:08"
  11. }
  12. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param)
  13. res = requests.get(url)
  14. result = json.loads(res.content)
  15. result = json.dumps(result) # json格式化
  16. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": [{
  4. "IsValid": ture,
  5. "ModifyRole": "用户",
  6. "ModifyTime": "2022-02-17 15:34:06",
  7. "NewParameterValue": "74.43",
  8. "OldParameterValue": "74.43",
  9. "ParameterName": "innodb_max_dirty_pages_pct",
  10. "StatusMessage": "已生效"
  11. }],
  12. "Message": "success"
  13. }

24.ModifyDBParameter

Action:ModifyDBParameter

描述: 修改云数据库MySQL参数。

请求地址: cdsapi.capitalonline.net/mysql

请求方法: POST

请求参数:

参数名 必选 类型 说明
InstanceUuid string 实例编号
Parameters list of ParametersObj 待修改参数

修改参数ParametersObj

参数名 必选 类型 说明
Name string 参数名称
Value string 参数值

返回参数:

名称 类型 描述
Message string 信息描述
Code string 状态码
Data dict 参数修改历史查询数据
TaskId string 任务编号

请求示例:

  1. def modify_mysql_parameter(instance_uuid):
  2. """
  3. 修改云数据库MySQL参数
  4. :param instance_uuid: 实例编号
  5. """
  6. action = "ModifyDBParameter"
  7. method = "POST"
  8. param = {}
  9. url = get_signature(action, AK, AccessKeySecret, method, MYSQL_URL, param=param)
  10. body = {
  11. "InstanceUuid": "************",
  12. "Parameters": [
  13. {
  14. "Name": "back_log",
  15. "Value": "345"
  16. }, {
  17. "Name": "connect_timeout",
  18. "Value": "145"
  19. }
  20. ]
  21. }
  22. res = requests.post(url, json=body)
  23. result = json.loads(res.content)
  24. print(result)

返回示例:

  1. {
  2. "Code": "Success",
  3. "Data": {},
  4. "Message": "Parameter configuration is being configured",
  5. "TaskId": "42a73680-af4d-498e-b6a2-416fec04ca44"
  6. }