Skip to main content

Relational Database (MySQL)

version tip

Since v5.0.0, this module has been added. Accessed via app.mysql, it provides full management capabilities for CloudBase-hosted MySQL (Serverless CynosDB) databases.


Initialize​

import CloudBase from '@cloudbase/manager-node'

const app = CloudBase.init({
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
})

const mysql = app.mysql

createMySQL​

1. API Description​

API feature: Activate the MySQL database for the current environment.

API declaration: app.mysql.createMySQL(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
DbInstanceTypeNoStringDatabase type, fixed value MYSQL
MysqlVersionNoStringMySQL version, such as 5.7
VpcIdNoStringVPC ID
SubnetIdNoStringSubnet ID
LowerCaseTableNamesNoStringTable name case sensitivity: 0 (case-sensitive) / 1 (case-insensitive, default)

3. Return Results​

FieldTypeDescription
RequestIdStringUnique identifier of the request
Data.TaskIdStringAsynchronous provisioning task ID

4. Sample Code​

const { Data } = await mysql.createMySQL({ MysqlVersion: '5.7' })
console.log('Provisioning task ID:', Data.TaskId)

describeCreateResult​

1. API Description​

API feature: Query MySQL provisioning status

API declaration: app.mysql.describeCreateResult(options?): Promise<Object>

2. Return Results​

FieldTypeDescription
Data.StatusStringnotexist (Not activated) / success (Activated)
Data.FailReasonStringFailure reason (present when failed)
Data.FreezeStatusBooleanWhether it is frozen

describeClusterDetail​

1. API Description​

API feature: Query MySQL cluster details (database information, network configuration, etc.)

API declaration: app.mysql.describeClusterDetail(): Promise<Object>

2. Return Results​

FieldTypeDescription
Data.DbClusterIdStringCluster ID
Data.DbInfoObjectDatabase status, version, storage, and other information
Data.NetInfoObjectInternal and external IP addresses, VPC, and other network information

destroyMySQL​

1. API Description​

API feature: Destroy the MySQL instance in the current environment.

API declaration: app.mysql.destroyMySQL(): Promise<Object>

2. Return Results​

FieldTypeDescription
Data.IsSuccessBooleanwhether the operation was successful
Data.TaskIdStringTask ID
Data.TaskNameStringTask Name

describeTaskStatus​

1. API Description​

API feature: Query MySQL asynchronous task status

API declaration: app.mysql.describeTaskStatus(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
TaskIdNoStringTask ID

3. Return Results​

FieldTypeDescription
StatusStringTask status, such as SUCCESS / FAILED
StatusDescStringStatus description

runSql​

1. API Description​

API feature: Directly execute SQL statements (SELECT/INSERT/UPDATE/DELETE, etc.)

API declaration: app.mysql.runSql(options): Promise<IRunSqlResult>

2. Input Parameters​

FieldRequiredTypeDescription
SqlRequiredStringSQL statement to be executed
DbInstanceNoObjectDatabase connector instance information
ReadOnlyNoBooleanRead-only mode (only allows SELECT/WITH/SHOW/DESCRIBE/EXPLAIN statements)

3. Return Results​

FieldTypeDescription
ItemsString[]Query result rows (each row is a JSON string)
InfosString[]Column metadata
RowsAffectedNumberNumber of affected rows
RequestIdStringUnique identifier of the request

4. Sample Code​

const res = await mysql.runSql({
Sql: 'SELECT * FROM users WHERE id = 1'
})
const rows = res.Items.map(item => JSON.parse(item))
console.log(rows)

openWan / closeWan​

1. API Description​

API feature: Enable/disable public network access for instances.

API Declaration:

  • app.mysql.openWan(options?): Promise<Object>
  • app.mysql.closeWan(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
InstanceIdNoStringInstance ID
InstanceGroupIdNoStringInstance Group ID

3. Return Results​

FieldTypeDescription
FlowIdNumberWorkflow ID
RequestIdStringUnique identifier of the request

describeClusterInstanceGroups​

1. API Description​

API feature: Query cluster instance group list (including network information and instance list of each instance group)

API declaration: app.mysql.describeClusterInstanceGroups(): Promise<Object>

2. Return Results​

FieldTypeDescription
TotalCountNumberTotal count of instance groups
InstanceGroupInfoListArrayList of instance groups, each containing Vip/Vport/InstanceSet, etc.

describeInstances​

1. API Description​

API feature: Query the instance list, supporting multi-dimensional filtering

API declaration: app.mysql.describeInstances(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
LimitNoNumberNumber of returned items, default 20, value range (0,100]
OffsetNoNumberOffset, default 0
OrderByNoStringSorting field: CREATETIME / PERIODENDTIME
OrderByTypeNoStringSort order: ASC / DESC
FiltersNoIQueryFilter[]Filter conditions with an AND relationship between them
StatusNoStringInstance status: creating / running / isolating / isolated, etc.
InstanceIdsNoString[]Filter by instance ID list

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count of instances
InstanceSetArrayList of instance details

describeInstanceDetail​

1. API Description​

API feature: Querying the full details of a single instance

API declaration: app.mysql.describeInstanceDetail(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
InstanceIdYesStringInstance ID

3. Return Results​

Returns a Detail object containing full details of the instance, such as CPU/memory/storage, network, status, version, etc. (see ICynosdbInstanceFullDetail).


restartInstance​

1. API Description​

API feature: Restarting the specified instance

API declaration: app.mysql.restartInstance(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
InstanceIdYesStringInstance ID

3. Return Results​

FieldTypeDescription
FlowIdNumberAsynchronous Workflow ID
RequestIdStringUnique identifier of the request

upgradeInstance​

1. API Description​

API feature: Modify instance specifications (CPU / Memory)

API declaration: app.mysql.upgradeInstance(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
InstanceIdYesStringInstance ID
CpuYesNumberTarget CPU core count
MemoryYesNumberTarget memory (GB)
UpgradeTypeYesStringUpgrade timing: upgradeImmediate (immediate) / upgradeInMaintain (maintenance window)
UpgradeModeNoStringUpgrade mode: NormalUpgrade (normal) / FastUpgrade (fast)

3. Return Results​

FieldTypeDescription
TranIdStringFreeze transaction ID
BigDealIdsString[]big order IDs
DealNamesString[]order IDs

describeInstanceSlowQueries​

1. API Description​

API feature: Querying the slow query logs of an instance

API declaration: app.mysql.describeInstanceSlowQueries(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
InstanceIdYesStringInstance ID
StartTimeNoStringStart Time
EndTimeNoStringEnd Time
LimitOptionalNumberReturned quantity
OffsetNoNumberoffset
UsernameOptionalStringFilter by username
HostOptionalStringFilter by client Host
DatabaseOptionalStringFilter by database name
OrderByNoStringSorting field: QueryTime / LockTime / RowsExamined / RowsSent
OrderByTypeNoStringSort order: asc / desc
SqlTextOptionalStringFilter SQL statements by keywords

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count
SlowQueriesArrayList of slow query records (including SQL statements, execution time, rows scanned, etc.)

describeInstanceErrorLogs​

1. API Description​

API feature: Querying the error logs of an instance

API declaration: app.mysql.describeInstanceErrorLogs(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
InstanceIdRequiredStringInstance ID
StartTimeNoStringStart Time
EndTimeNoStringEnd Time
LimitOptionalNumberReturned quantity
OffsetNoNumberoffset
OrderByOptionalStringSorting field, supporting Timestamp
OrderByTypeNoStringSort order: ASC / DESC
LogLevelsOptionalString[]Log Level: error / warning / note
KeyWordsOptionalString[]Keywords filtering (fuzzy search)

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count
ErrorLogsArrayError logs list (containing Content/Level/Timestamp)

describeClusterDatabases​

1. API Description​

API feature: Query database list in the cluster

API declaration: app.mysql.describeClusterDatabases(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
OffsetNoNumberoffset
LimitOptionalNumberReturned quantity

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count
DatabasesString[]Database name list

describeClusterDatabaseTables​

1. API Description​

API feature: Query table list in the specified database

API declaration: app.mysql.describeClusterDatabaseTables(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
DbYesStringDatabase name
OffsetNoNumberoffset
LimitOptionalNumberNumber of returned items
TableTypeNoStringTable type: view (view) / base_table (base table) / all (all, default)

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count
TablesString[]List of table names

4. Sample Code​

const { Databases } = await mysql.describeClusterDatabases()
for (const db of Databases) {
const { Tables } = await mysql.describeClusterDatabaseTables({ Db: db })
console.log(`${db}: ${Tables.join(', ')}`)
}

createAccounts​

1. API Description​

API feature: Batch create database accounts.

API declaration: app.mysql.createAccounts(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
AccountsRequiredINewAccount[]New account list

INewAccount

FieldRequiredTypeDescription
AccountNameRequiredStringAccount name
AccountPasswordRequiredStringPassword (8-64 characters, including uppercase letters, lowercase letters, digits, and symbols)
HostRequiredStringAllowed host (IP or %)
DescriptionNoStringAccount description
MaxUserConnectionsNoNumberMaximum connection limit

deleteAccounts​

1. API Description​

API feature: Batch delete database accounts

API declaration: app.mysql.deleteAccounts(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
AccountsOptionalIInputAccount[]List of accounts to be deleted ({ AccountName, Host? })

describeAccounts​

1. API Description​

API feature: Query database account list

API declaration: app.mysql.describeAccounts(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
AccountNamesOptionalString[]Filter by account name
HostsOptionalString[]Filter by Host
LimitOptionalNumberReturned quantity
OffsetOptionalNumberOffset
AccountRegularOptionalStringFuzzy match keywords (supports regular expressions)

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count of accounts
AccountSetArrayAccount information list (including AccountName/Host/CreateTime, etc.)

describeAccountPrivileges​

1. API Description​

API feature: Query account permissions on specified databases/tables

API declaration: app.mysql.describeAccountPrivileges(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
AccountNameRequiredStringAccount name
HostRequiredStringHost
DbRequiredStringDatabase name, * indicates global privileges
TypeRequiredStringObject type: table (table level) / * (database/global level)
TableNameNoStringTable name (Required when Type='table')

3. Return Results​

FieldTypeDescription
PrivilegesString[]Permission list

describeAccountAllGrantPrivileges​

1. API Description​

API feature: Query all granted permissions for the account (global, database, table)

API declaration: app.mysql.describeAccountAllGrantPrivileges(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
AccountRequiredIInputAccount{ AccountName, Host? }

3. Return Results​

FieldTypeDescription
PrivilegeStatementsString[]Privilege statements
GlobalPrivilegesString[]Global privileges list
DatabasePrivilegesArrayDatabase privileges
TablePrivilegesArrayTable privileges

modifyAccountPrivileges​

1. API Description​

API feature: Modify account permissions

API declaration: app.mysql.modifyAccountPrivileges(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
AccountRequiredIInputAccountAccount information
GlobalPrivilegesOptionalString[]Global privileges list
DatabasePrivilegesOptionalArrayDatabase-level privileges
TablePrivilegesOptionalArrayTable-level privileges

modifyAccountDescription​

API declaration: app.mysql.modifyAccountDescription(options): Promise<Object>

Modify account description information. Parameters: AccountName (Required), Description (Required), Host (Optional).


modifyAccountHost​

API declaration: app.mysql.modifyAccountHost(options): Promise<Object>

Modify the Host allowed for account access. Parameters: Account (IInputAccount, Required), NewHost (New Host, Required).


modifyAccountParams​

API declaration: app.mysql.modifyAccountParams(options): Promise<Object>

Modify account configuration parameters. Parameters: Account (Required), AccountParams (IAccountParamItem[], Required, each item contains ParamName and ParamValue).


resetAccountPassword​

1. API Description​

API feature: Reset account password

API declaration: app.mysql.resetAccountPassword(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
AccountNameRequiredStringAccount name
AccountPasswordRequiredStringNew password
HostOptionalStringHost, default %

createBackup​

1. API Description​

API feature: Manually create database backups.

API declaration: app.mysql.createBackup(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
BackupTypeOptionalStringBackup type: logic (logical) / snapshot (physical, default)
BackupDatabasesOptionalString[]Databases to back up (only valid for logic type)
BackupTablesOptionalArrayTables to back up (only valid for logic type)
BackupNameOptionalStringBackup remark name

3. Return Results​

FieldTypeDescription
FlowIdNumberBackup Workflow ID

deleteBackup​

1. API Description​

API feature: Delete backup files

API declaration: app.mysql.deleteBackup(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
BackupIdsOptionalNumber[]Backup ID list (recommended)
SnapshotIdListOptionalNumber[]Snapshot ID list (legacy, not recommended)

modifyBackupConfig​

1. API Description​

API feature: Modify backup policy configuration (backup time window, retention period, backup frequency)

API declaration: app.mysql.modifyBackupConfig(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
BackupTimeBegNoNumberFull backup start time (seconds, e.g. 0=0:00, 3600=1:00)
BackupTimeEndOptionalNumberFull backup end time
ReserveDurationOptionalNumberBackup retention period (in seconds, e.g., seven days=604800)
BackupFreqOptionalString[]Array of length 7, corresponding to Monday to Sunday, full/increment
BackupTypeOptionalStringBackup type

describeBackupList​

1. API Description​

API feature: Query backup list

API declaration: app.mysql.describeBackupList(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
LimitOptionalNumberNumber of returned items, value range (0,100]
OffsetOptionalNumberOffset
BackupTypeOptionalStringsnapshot (snapshot) / logic (logical)
BackupMethodOptionalStringauto (automatic) / manual (manual)
StartTimeOptionalStringFilter by backup start time
EndTimeOptionalStringFilter by backup end time
BackupNamesOptionalString[]Filter by remark name (fuzzy)

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count
BackupListArrayList of backup files (including BackupId/BackupType/BackupStatus/StartTime/FinishTime etc.)

describeBackupDownloadUrl​

1. API Description​

API feature: Obtain the download address of backup files

API declaration: app.mysql.describeBackupDownloadUrl(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
BackupIdRequiredNumberBackup ID

3. Return Results​

FieldTypeDescription
DownloadUrlStringBackup download URL

4. Sample Code​

const { BackupList } = await mysql.describeBackupList({ Limit: 5 })
const latest = BackupList[0]
const { DownloadUrl } = await mysql.describeBackupDownloadUrl({ BackupId: latest.BackupId })
console.log('Download URL:', DownloadUrl)

rollBackCluster​

1. API Description​

API feature: Restore the cluster to a specified time point or backup file.

API declaration: app.mysql.rollBackCluster(options): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
RollbackStrategyRequiredStringRollback policy: timeRollback (by point in time) / snapRollback (by backup file)
RollbackIdNoNumberBackup file ID (required when snapRollback)
ExpectTimeNoStringExpected time point (Required when timeRollback)
RollbackDatabasesOptionalArrayList of rollback databases (including OldDatabase / NewDatabase)
RollbackTablesOptionalArrayRollback table list (including Database and Tables)
RollbackModeOptionalStringPoint-in-time rollback mode: full (normal) / db (fast) / table (extreme-speed)

3. Return Results​

FieldTypeDescription
FlowIdNumberRollback Workflow ID
RequestIdStringUnique identifier of the request

4. Sample Code​

// Roll back to a point in time (roll back the users table to a new table users_restore)
const { FlowId } = await mysql.rollBackCluster({
RollbackStrategy: 'timeRollback',
ExpectTime: '2025-01-01 12:00:00',
RollbackTables: [{
Database: 'mydb',
Tables: [{ OldTable: 'users', NewTable: 'users_restore' }]
}],
RollbackMode: 'table'
})
console.log('Rollback workflow ID:', FlowId)

describeTasks​

1. API Description​

API feature: List MySQL asynchronous tasks

API declaration: app.mysql.describeTasks(options?): Promise<Object>

2. Input Parameters​

FieldRequiredTypeDescription
StartTimeBeginNoStringLower bound of task start time
StartTimeEndNoStringUpper bound of task start time
FiltersNoIQueryFilter[]Filter conditions
LimitOptionalNumberReturned quantity
OffsetNoNumberoffset

3. Return Results​

FieldTypeDescription
TotalCountNumberTotal count
TaskListArrayTask list (including ID/Status/TaskType/StartTime, etc.)