Path: 宝塔面板 API 参考 › 数据库管理

`POST /database`

这个请求地址通过 action 区分具体功能。下方列出每个 action 的参数、约束和调用示例。

## Request body

_Required._

One of:

- `AddDatabase`
- `AddMysqlUser`
- `ClearMySQLBinlog`
- `DelMysqlUser`
- `DeleteDatabase`
- `GeUserHostList`
- `GetAllBackup`
- `GetBackup`
- `GetCloudServer`
- `GetDatabaseList`
- `GetDatabasesList`
- `GetDbStatus`
- `GetErrorLog`
- `GetImportStatus`
- `GetInfo`
- `GetLoginFailed`
- `GetMySQLInfo`
- `GetMysqlCommands`
- `GetMysqlUser`
- `GetPushUser`
- `GetRunStatus`
- `GetSlowLogs`
- `GetTimeOut`
- `SetTimeOut`
- `ToBackup`
- `find_databases_by_name_and_type`
- `get_database_table`
- `get_mysql_status`
- `get_restart_task`
- `view_database_types`

## Example request

```text
{
  "request_time": "string",
  "request_token": "string",
  "action": "AddDatabase",
  "sid": 0,
  "name": "string",
  "db_user": "string",
  "password": "string",
  "address": "string",
  "codeing": "string",
  "ps": "string",
  "pid": 0
}
```

## Code samples

### cURL（填写面板地址与签名）

```curl
curl --request POST \
  --url "https://your-panel.example.com:8888/database" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "request_time=<Unix时间戳>" \
  --data-urlencode "request_token=<按 API 概览生成的签名>" \
  --data-urlencode "action=AddDatabase" \
  --data-urlencode "sid=<sid>" \
  --data-urlencode "name=<name>" \
  --data-urlencode "db_user=<db_user>" \
  --data-urlencode "password=<password>" \
  --data-urlencode "address=<address>" \
  --data-urlencode "codeing=<codeing>"
```

## Responses

### default

响应因 action 而异，见下方各 action 的详细说明。


## AddDatabase

在指定 MySQL 服务器上创建新数据库，同时创建对应的数据库用户并授予全部权限。

- **路由**：`POST /database`
- **action**：`AddDatabase`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `AddDatabase` |
| sid | 是 | Integer | 数据库服务器 ID，`0` = 本地 MySQL |
| name | 是 | String | 数据库名称，仅允许 `^[\w\.-]+$`，不超过 64 字节 |
| db_user | 是 | String | 数据库用户名（与数据库名不同时需指定） |
| password | 是 | String | 数据库密码 |
| address | 是 | String | 访问来源：`%` 任意 IP，`127.0.0.1` 仅本地，具体 IP |
| codeing | 是 | String | 字符集：`utf8` / `utf8mb4` / `gbk` / `big5` |
| ps | 否 | String | 备注信息 |
| pid | 否 | Integer | 关联网站 ID |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 创建成功 |
| msg | String | `添加成功` |

## 示例

### 请求

```
POST /database HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=AddDatabase&sid=0&name=bt_doc_test&db_user=bt_doc_test&password=Test@2024&address=%25&codeing=utf8mb4&ps=测试
```

> `address=%25` 是 `%` 的 URL 编码（表示允许任意 IP 访问）。

### 响应

```json
{"status": true, "msg": "添加成功"}
```


## AddMysqlUser

在指定 MySQL 服务器上创建新用户。

- **路由**：`POST /database`
- **action**：`AddMysqlUser`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `AddMysqlUser` |
| sid | 是 | Integer | 服务器 ID，`0` = 本地 |
| username | 是 | String | 用户名 |
| password | 是 | String | 密码 |
| address | 是 | String | 访问来源（`%` 任意） |
| db_user | 是 | String | 同 username |
| host | 是 | String | 主机限制，通常 `%` |

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=AddMysqlUser&sid=0&username=newuser&password=Test@2024&address=%25&db_user=newuser&host=%25
```

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "添加成功"}
```

## 相关接口

- [DelMysqlUser](/api/database/delmysqluser) — 删除用户


## BinLog

## BinLog / GetMySQLBinlogs / ClearMySQLBinlog

管理 MySQL 二进制日志。

- **路由**：`POST /database`

## BinLog

开启或关闭二进制日志。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `BinLog` |

### 响应

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "开启二进制日志成功！", "data": {"binlog_status": true}}
```

## GetMySQLBinlogs

获取二进制日志文件列表及大小。

### 响应

```json
{"status": true, "msg": "ok", "data": [
    {"name": "mysql-bin.000001", "path": "/www/server/data/mysql-bin.000001", "size": 177}
]}
```

## ClearMySQLBinlog

清理指定天数前的二进制日志。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `ClearMySQLBinlog` |
| days | 是 | Integer | 保留天数 |

### 响应

```json
{"status": true, "msg": "清理完成!"}
```


## ClearMySQLBinlog

清理指定天数前的 MySQL 二进制日志文件。

- **路由**：`POST /database`
- **action**：`ClearMySQLBinlog`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `ClearMySQLBinlog` |
| days | 是 | Integer | 保留最近 N 天的日志 |

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=ClearMySQLBinlog&days=7
```

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "清理完成!"}
```


## DelMysqlUser

删除 MySQL 服务器上的指定用户。

- **路由**：`POST /database`
- **action**：`DelMysqlUser`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `DelMysqlUser` |
| sid | 是 | Integer | 服务器 ID，`0` = 本地 |
| username | 是 | String | 要删除的用户名 |
| host | 是 | String | 主机，通常 `%` |

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=DelMysqlUser&sid=0&username=bt_tmp_del&host=%25
```

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "删除成功"}
```


## DeleteDatabase

删除指定数据库，同时删除关联用户及权限。

- **路由**：`POST /database`
- **action**：`DeleteDatabase`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `DeleteDatabase` |
| id | 是 | Integer | 数据库在 `databases` SQLite 表中的 ID（**非 MySQL 服务器 ID**） |
| sid | 是 | Integer | 服务器 ID，`0` = 本地 |
| name | 是 | String | 数据库名 |
| db_user | 是 | String | 数据库用户名 |

### 获取数据库 ID

通过 `/data` 接口查询：

```
action=getData&table=databases&type=-1
```

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=DeleteDatabase&id=5&sid=0&name=bt_doc_test&db_user=bt_doc_test
```

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "删除成功"}
```


## GeUserHostList

查询指定 MySQL 服务器上所有用户及其允许登录的主机（Host），返回 `user@host` 格式列表。

- **路由**：`POST /database`
- **action**：`GeUserHostList`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GeUserHostList` |
| id | 是 | Integer | 数据库服务器 ID（`0` 为本地 MySQL） |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| - | Array&lt;String&gt; | 用户列表，格式 `root@localhost`，无数据时 `null` |

## 示例

### 请求

```
POST /database HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=GeUserHostList&id=0
```

### 响应

```json
["root@localhost", "bt_api_test@%"]
```


## GetAllBackup

获取所有数据库的备份文件列表。

- **路由**：`POST /database`
- **action**：`GetAllBackup`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetAllBackup` |
| p | 否 | Integer | 页码 |
| limit | 否 | Integer | 每页数量 |

## 示例

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "OK", "data": [], "page": "<div>分页</div>"}
```


## GetBackup

## GetBackup / GetAllBackup

获取数据库备份文件列表。

- **路由**：`POST /database`
- **action**：`GetBackup` 或 `GetAllBackup`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | `GetBackup` 或 `GetAllBackup` |
| p | 否 | Integer | 页码 |
| limit | 否 | Integer | 每页数量 |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果 |
| data | Array | 备份文件列表 |
| data[].name | String | 备份文件名 |
| data[].path | String | 备份文件路径 |
| data[].size | String | 文件大小 |
| data[].addtime | String | 备份时间 |
| page | String | 分页 HTML |

## 示例

```json
{
    "status": true, "msg": "OK",
    "data": [{"name": "bt_db_2026-05.sql.zip", "path": "/www/backup/database/...", "size": "1.5 KB", "addtime": "2026-05-22 09:04:41"}],
    "page": "<div>分页信息</div>"
}
```


## GetCloudServer

获取所有数据库服务器列表，包括本地 MySQL 和已添加的远程服务器。

- **路由**：`POST /database`
- **action**：`GetCloudServer`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetCloudServer` |

## 输出参数

返回数组，每项：

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| id | Integer | 服务器 ID，`0` = 本地 |
| db_host | String | 主机地址 |
| db_port | Integer | 端口 |
| db_user | String | 连接用户名 |
| ps | String | 备注说明 |

## 示例

```json
[{
    "id": 0,
    "db_host": "127.0.0.1",
    "db_port": 3306,
    "db_user": "root",
    "db_password": "",
    "ps": "本地服务器",
    "addtime": 0
}]
```


## GetDatabaseList

获取指定 MySQL 服务器上的所有数据库列表。

- **路由**：`POST /database`
- **action**：`GetDatabaseList`
- **返回类型**：Array（二维数组）

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetDatabaseList` |
| id | 是 | Integer | 数据库服务器 ID，`0` = 本地 MySQL |

## 输出参数

返回二维数组，每项为 `[数据库名]`。

## 示例

### 请求

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

request_time=1700000000&request_token=xxx&action=GetDatabaseList&id=0
```

### 响应

```json
[["information_schema"], ["bt_api_test"], ["mysql"], ["performance_schema"], ["sys"]]
```


## GetDatabasesList

获取面板 `databases` SQLite 表中记录的所有数据库及权限信息。

与 [GetDatabaseList](/api/database/getdatabaselist) 的区别：本接口返回面板管理的数据库（含用户/权限），GetDatabaseList 返回 MySQL 原生 `SHOW DATABASES` 结果。

- **路由**：`POST /database`
- **action**：`GetDatabasesList`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetDatabasesList` |
| sid | 是 | Integer | 服务器 ID，`0` = 本地 |
| p | 否 | Integer | 页码 |
| limit | 否 | Integer | 每页数量 |

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=GetDatabasesList&sid=0&p=1&limit=10
```

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "ok", "data": [
    {"name": "全局权限", "value": "*", "tb_list": []}
]}
```


## GetDbStatus

获取 MySQL 运行时的内存相关配置参数，通过解析 `/etc/my.cnf` 和 `SHOW VARIABLES` 获得。

- **路由**：`POST /database`
- **action**：`GetDbStatus`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetDbStatus` |

## 输出参数

返回 `mem` 对象，包含以下 MySQL 配置项：

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| query_cache_size | String | 查询缓存大小 |
| bt_query_cache_size | String | 面板设置的查询缓存 |
| query_cache_type | String | 查询缓存类型：`ON` / `OFF` / `DEMAND` |
| query_cache_supprot | String | 查询缓存支持状态 |
| table_open_cache | Integer | 打开表缓存数量 |
| thread_cache_size | Integer | 线程缓存大小 |
| key_buffer_size | Integer | MyISAM 索引缓冲（MB） |
| tmp_table_size | Integer | 临时表大小（MB） |
| max_heap_table_size | String | MEMORY 表最大大小 |
| innodb_buffer_pool_size | Integer | InnoDB 缓冲池大小（MB） |
| innodb_log_buffer_size | Integer | InnoDB 日志缓冲（MB） |
| max_connections | Integer | 最大连接数 |
| sort_buffer_size | Integer | 排序缓冲（KB） |
| read_buffer_size | Integer | 读缓冲（KB） |
| read_rnd_buffer_size | Integer | 随机读缓冲（KB） |
| join_buffer_size | Integer | JOIN 缓冲（KB） |
| thread_stack | Integer | 线程栈大小（KB） |
| binlog_cache_size | Integer | Binlog 缓存（KB） |

## 示例

```json
{
    "mem": {
        "query_cache_size": "0",
        "bt_query_cache_size": "0",
        "table_open_cache": 256,
        "thread_cache_size": 32,
        "query_cache_type": "OFF",
        "key_buffer_size": 64,
        "tmp_table_size": 64,
        "max_heap_table_size": "16777216",
        "innodb_buffer_pool_size": 256,
        "innodb_log_buffer_size": 32,
        "max_connections": 500,
        "sort_buffer_size": 1024,
        "read_buffer_size": 1024,
        "read_rnd_buffer_size": 256,
        "join_buffer_size": 256,
        "thread_stack": 256,
        "binlog_cache_size": 32,
        "query_cache_supprot": "disable"
    }
}
```


## GetErrorLog

获取 MySQL 数据库的错误日志文件路径。返回 MySQL 数据目录下 `.err` 结尾的错误日志文件。

- **路由**：`POST /database`
- **action**：`GetErrorLog`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetErrorLog` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 成功读取 |
| msg | String | 日志文件路径或错误信息 |

## 示例

### 请求

```
POST /database HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=GetErrorLog
```

### 响应

```json
{"status": true, "msg": "/www/server/data/apitest.err"}
```


## GetImportLog

## GetImportLog / GetImportStatus

获取数据库导入操作的日志和状态。

- **路由**：`POST /database`

## GetImportLog

获取当前导入操作的实时日志输出。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetImportLog` |

```
Starting to import the database!
=====================================================
```

## GetImportStatus

获取当前导入状态。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetImportStatus` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"db_name": ""}
```

`db_name` 为空表示无正在进行的导入操作。


## GetImportStatus

查询当前正在进行的 SQL 文件导入操作的进度和状态。

- **路由**：`POST /database`
- **action**：`GetImportStatus`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetImportStatus` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| db_name | String | 正在导入的数据库名称，空字符串 `""` 表示无导入任务 |

## 示例

### 请求

```
POST /database HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=GetImportStatus
```

### 响应

```json
{"db_name": ""}
```

> 有导入任务时返回 `{"db_name": "bt_api_test"}` 等。


## GetInfo

获取面板 `databases` 表中指定数据库的详细信息（大小、表列表）。

- **路由**：`POST /database`
- **action**：`GetInfo`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetInfo` |
| db_name | 是 | String | 数据库名（必须在 `databases` 表中存在） |

> 只能查询通过面板创建的数据库。MySQL 系统库（mysql、sys 等）不在面板管理范围内。

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| data_size | String | 数据库数据大小 |
| database | String | 数据库名 |
| tables | Array | 表列表 |

## 示例

```json
{"data_size": "0.00b", "database": "bt_doc_test", "tables": []}
```


## GetLoginFailed

查询 MySQL 的 `CONNECTION_CONTROL` 插件状态及登录失败跟踪配置。

- **路由**：`POST /database`
- **action**：`GetLoginFailed`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetLoginFailed` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | String | `"on"` 已开启，`"off"` 未开启 |
| connection_control_failed_connections_threshold | String | 失败次数阈值（开启时返回） |
| connection_control_min_connection_delay | String | 最小延迟（开启时返回） |
| connection_control_max_connection_delay | String | 最大延迟（开启时返回） |

## 示例

### 请求

```
POST /database HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=GetLoginFailed
```

### 响应

```json
{"status": "off"}
```


## GetMySQLInfo

获取本地 MySQL / MariaDB 的数据目录和监听端口。

- **路由**：`POST /database`
- **action**：`GetMySQLInfo`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetMySQLInfo` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| datadir | String | MySQL 数据目录路径 |
| port | String | MySQL 监听端口 |

## 示例

### 响应

```json
{"datadir": "/www/server/data", "port": "3306"}
```


## GetMysqlCommands

获取 MySQL 支持的 SQL 命令类型列表。

- **路由**：`POST /database`
- **action**：`GetMysqlCommands`
- **返回类型**：Array（字符串数组）

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetMysqlCommands` |

## 输出参数

返回字符串数组，每项为 MySQL 命令名称。

## 示例

```json
["SELECT", "INSERT", "UPDATE", "DELETE", "REPLACE", "CREATE DATABASE", "DROP DATABASE", "CREATE TABLE", "DROP TABLE", "ALTER TABLE", "CREATE INDEX", "DROP INDEX", "ALTER DATABASE", "TRUNCATE TABLE"]
```


## GetMysqlUser

获取指定 MySQL 服务器上所有用户及其权限详情。

- **路由**：`POST /database`
- **action**：`GetMysqlUser`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetMysqlUser` |
| sid | 是 | Integer | 服务器 ID，`0` = 本地 |

## 输出参数

`data` 为数组，每项：

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| user | String | 用户名 |
| list | Array | 该用户在各主机上的权限列表 |
| list[].host | String | 主机（`localhost` / `%`） |
| list[].password | String | 是否有密码（`有` / `无`） |
| list[].password_last_changed | String | 密码最后修改时间 |
| list[].access_list | Array | 数据库级权限列表 |

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=GetMysqlUser&sid=0
```

```json
{"status": true, "msg": "ok", "data": [
    {"user": "root", "list": [{"host": "localhost", "password": "有"}]}
]}
```


## GetPushUser

获取数据库相关消息推送的目标用户列表。

- **路由**：`POST /database`
- **action**：`GetPushUser`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetPushUser` |

## 示例

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "ok", "data": [{"title": "本地服务器", "value": 0}]}
```


## GetRunStatus

获取 MySQL 服务器的运行状态变量（`SHOW GLOBAL STATUS` 结果）。

- **路由**：`POST /database`
- **action**：`GetRunStatus`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetRunStatus` |

## 输出参数

返回 MySQL 状态变量键值对，包含连接数、查询数、流量等数百个指标。

| 常见参数 | 描述 |
|----------|------|
| Connections | 总连接次数 |
| Uptime | MySQL 运行时间（秒） |
| Bytes_received/sent | 收发字节数 |
| Com_select/insert/update/delete | CRUD 操作计数 |
| Slow_queries | 慢查询数 |
| Threads_connected | 当前连接数 |

## 示例

```json
{
    "Aborted_clients": "33",
    "Bytes_received": "17167",
    "Bytes_sent": "39463",
    "Connections": "50",
    "Uptime": "3600",
    "Threads_connected": "2"
}
```


## GetSlowLogs

获取 MySQL 慢查询日志的完整文本内容。

- **路由**：`POST /database`
- **action**：`GetSlowLogs`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetSlowLogs` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 获取成功 |
| msg | String | 慢查询日志完整文本，开头包含 MySQL 版本和启动参数 |

## 示例

```json
{
    "status": true,
    "msg": "/www/server/mysql/bin/mysqld, Version: 5.7.44-log (Source distribution).\nstarted with: Tcp port: 3306  Unix socket: /tmp/mysql.sock\n..."
}
```


## GetTimeOut

获取 MySQL 的超时和过期相关配置参数。

- **路由**：`POST /database`
- **action**：`GetTimeOut`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetTimeOut` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| default_password_lifetime | String | 默认密码有效期（天），`0` = 永不过期 |
| expire_logs_days | String | 二进制日志过期天数 |
| interactive_timeout | String | 交互连接超时（秒） |
| wait_timeout | String | 非交互连接超时（秒） |

## 示例

```json
{
    "default_password_lifetime": "0",
    "expire_logs_days": "10",
    "interactive_timeout": "28800",
    "wait_timeout": "28800"
}
```


## GetValidatePasswordConfig

## GetValidatePasswordConfig / GetLoginFailed

获取 MySQL 的安全相关配置。

- **路由**：`POST /database`

## GetValidatePasswordConfig

获取密码验证策略（`validate_password` 插件状态）。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetValidatePasswordConfig` |

### 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | String | `"on"` = 已开启密码验证，`"off"` = 未开启 |

```json
{"status": "off"}
```

## GetLoginFailed

获取登录失败处理配置（`connection_control` 插件状态）。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `GetLoginFailed` |

### 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | String | `"on"` = 已开启，`"off"` = 未开启 |
## 相关接口

- [GetTimeOut](/api/database/gettimeout) — 超时配置
- [SetTimeOut](/api/database/settimeout) — 设置超时


## SetTimeOut

设置 MySQL 的超时和连接相关配置参数。

- **路由**：`POST /database`
- **action**：`SetTimeOut`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `SetTimeOut` |
| interactive_timeout | 否 | Integer | 交互连接超时（秒） |
| wait_timeout | 否 | Integer | 非交互连接超时（秒） |
| expire_logs_days | 否 | Integer | 二进制日志过期天数 |
| default_password_lifetime | 否 | Integer | 密码有效期（天），`0` = 永不过期 |

## 示例

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "设置成功！"}
```


## ToBackup

备份指定数据库，生成 `.sql.gz` 文件存入面板备份目录。

- **路由**：`POST /database`
- **action**：`ToBackup`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `ToBackup` |
| id | 是 | Integer | 数据库在 `databases` SQLite 表中的 ID |
| sid | 是 | Integer | 服务器 ID，`0` = 本地 |

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=ToBackup&id=1&sid=0
```

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "备份成功!"}
```


## find_databases_by_name_and_type

根据数据库类型（如 `mysql`）和名称搜索数据库列表。

- **路由**：`POST /database`
- **action**：`find_databases_by_name_and_type`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `find_databases_by_name_and_type` |
| db_type | 是 | String | 数据库类型，如 `mysql` |
| name | 是 | String | 数据库名称（支持模糊匹配） |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 查询成功 |
| msg | Array | 匹配的数据库列表，无结果时为空数组 `[]` |

## 示例

### 请求

```
POST /database HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=find_databases_by_name_and_type&db_type=mysql&name=test
```

### 响应

```json
{"status": true, "msg": []}
```


## get_database_table

获取指定数据库中所有表的列表（执行 `SHOW TABLES`）。

- **路由**：`POST /database`
- **action**：`get_database_table`
- **返回类型**：Array（二维数组）

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `get_database_table` |
| sid | 是 | Integer | 服务器 ID，`0` = 本地 |
| name | 是 | String | 数据库名 |

## 示例

```
POST /database HTTP/1.1
Content-Type: application/x-www-form-urlencoded

action=get_database_table&sid=0&name=mysql
```

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
[["columns_priv"], ["db"], ["event"], ["func"], ["help_topic"], ["user"]]
```


## get_mysql_status

检查本地 MySQL 是否已安装。

- **路由**：`POST /database`
- **action**：`get_mysql_status`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `get_mysql_status` |

## 示例

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | 请求结果，`true` 表示成功 |
| msg | String | 提示信息 |

```json
{"status": true, "msg": "本地数据库已安装"}
```


## get_restart_task

查询 MySQL 守护进程定时任务的配置状态，该任务在 MySQL 异常停止时自动重启。

- **路由**：`POST /database`
- **action**：`get_restart_task`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `get_restart_task` |

## 输出参数

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 成功 |
| msg | Object | 任务详情，含 `id`、`name`、`status`(`0`关闭/`1`开启)、`type`、`sBody` 等 |

## 示例

### 请求

```
POST /database HTTP/1.1
Host: 192.168.168.213:8888
Content-Type: application/x-www-form-urlencoded

action=get_restart_task
```

### 响应

```json
{"status": true, "msg": {"id": 2, "name": "[勿删]MySQL守护进程", "status": 0, "type": "minute-n"}}
```

## 相关接口

- [set_restart_task](/api/database/set_restart_task) — 设置重启任务


## set_restart_task

## set_restart_task / get_restart_task

设置或获取 MySQL 守护进程的自动重启任务配置。

- **路由**：`POST /database`

## get_restart_task

获取当前守护进程任务配置。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `get_restart_task` |

### 输出参数

`msg` 中包含守护进程任务的具体配置对象。

```json
{"status": true, "msg": {"id": 2, "name": "[勿删]MySQL守护进程", "type": "minute-n", "where1": "5"}}
```

## set_restart_task

设置守护进程任务。

### 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `set_restart_task` |

```json
{"status": true, "msg": "设置成功"}
```

## 相关接口

- [GetValidatePasswordConfig](/api/database/getvalidatepasswordconfig) — 密码验证配置
- [GetLoginFailed](/api/database/getloginfailed) — 登录失败处理


## view_database_types

获取数据库类型分类列表（本地服务器 + 自定义分类）。

- **路由**：`POST /database`
- **action**：`view_database_types`

## 输入参数

| 参数名称 | 必选 | 类型 | 描述 |
|----------|------|------|------|
| action | 是 | String | 固定值 `view_database_types` |
| db_type | 是 | String | 数据库类型，如 `mysql` |

## 输出

| 参数名称 | 类型 | 描述 |
|----------|------|------|
| status | Boolean | `true` 查询成功 |
| msg | Array | 分类列表，每项含 `id`、`ps`、`db_type` |

```json
{"status": true, "msg": [{"id": 0, "ps": "本地服务器", "db_type": "mysql"}]}
```

```json
{"status": true, "msg": [{"id": 0, "ps": "本地服务器", "db_type": "mysql"}]}
```

