数据库

数据库模块用于管理关系型数据库(MySQL、MariaDB、PostgreSQL 等)、NoSQL 和分析型数据库(MongoDB、ClickHouse)、搜索引擎(Elasticsearch)、键值存储(Redis)以及嵌入式数据库(SQLite)。它支持创建数据库、管理用户、浏览数据以及配置数据库服务器。
前置要求
在使用数据库功能之前,需要先安装相应的数据库软件:
- 进入 应用 > 原生应用
- 安装你需要的数据库,例如 Percona、MySQL、MariaDB、PostgreSQL、MongoDB、ClickHouse、Elasticsearch、OpenSearch、Redis 或 Valkey
功能概览
只有至少存在一台对应类型的服务器时,数据库模块才会显示该类型标签;类型标签后方是 用户和服务器:
| 功能 | 说明 |
|---|---|
| 数据库 | 为所选类型创建和管理数据库 |
| 用户 | 管理数据库用户和权限 |
| 服务器 | 管理数据库服务器连接 |
| pgAdmin | 打开并管理 PostgreSQL Web 管理工具 |
Elasticsearch 和 Redis 标签页提供在线数据浏览器,可直接管理索引/文档和键值数据,而不是创建数据库的工作流。
支持的数据库
| 数据库 | 说明 |
|---|---|
| MySQL | 世界上最流行的开源关系型数据库 |
| MariaDB | MySQL 的开源分支,完全兼容 MySQL |
| Percona | MySQL 的高性能分支,适合高负载场景 |
| PostgreSQL | 功能强大的开源对象关系型数据库 |
| ClickHouse | 面向列的数据库,适用于海量数据集的实时分析 |
| MongoDB | 文档数据库,用于存储海量非结构化数据 |
| Elasticsearch | 用于全文检索的分布式搜索与分析引擎 |
| Redis | 内存键值存储,常用于缓存 |
| SQLite | 轻量级嵌入式数据库,以单个文件形式存储 |
MariaDB 和 Percona 在 MySQL 标签页下管理,因为它们与 MySQL 协议兼容。
快速开始
创建数据库
- 进入 数据库 页面,切换到你想要的数据库类型标签页(MySQL、PostgreSQL、ClickHouse 或 MongoDB)
- 点击 创建数据库
- 选择服务器
- 输入数据库名称
- 可选择开启 创建用户,或指定一个已有的授权用户
- 点击提交
创建用户
- 切换到 用户 标签
- 点击 创建用户
- 选择服务器,然后输入用户名和密码
- 设置权限(用户可访问的数据库名称;不存在的数据库会自动创建)
- 点击提交
注意
用户管理仅适用于 MySQL、PostgreSQL 和 ClickHouse。其他数据库类型不提供用户管理入口。
连接数据库
MySQL 数据库列表可以打开 phpMyAdmin,并选择要连接的 MySQL 服务器;安装 pgAdmin 后, PostgreSQL 列表可以直接打开它。两个工具的界面语言均跟随面板,其端口应保持私有或使用白名单限制。
本地连接
主机:127.0.0.1 或 localhost\nSocket:Percona/MySQL/MariaDB /tmp/mysql.sock,PostgreSQL /tmp/.s.PGSQL.5432各数据库类型的默认端口:
| 数据库 | 默认端口 |
|---|---|
| Percona/MySQL/MariaDB | 3306 |
| PostgreSQL | 5432 |
| ClickHouse | 8123 |
| MongoDB | 27017 |
| Elasticsearch | 9200 |
| Redis | 6379 |
远程连接
如需远程连接数据库:
- 在防火墙中开放数据库端口
- 创建一个允许远程访问的用户
对于 MySQL(包括 MariaDB 和 Percona),创建用户 表单提供了一个 主机 选择器,包含三个选项,用于控制该用户可以从何处连接:
| 主机选项 | 含义 |
|---|---|
| 本地(localhost) | 仅允许来自本机的连接 |
| 全部(%) | 允许来自任意主机的连接(远程访问所需) |
| 指定 | 仅允许来自你输入的主机地址的连接 |
要为 MySQL 用户启用远程访问,请选择 全部(%)(或选择 指定 并输入客户端地址)。 PostgreSQL 和 ClickHouse 用户没有这种按主机的设置,因此这些类型不会显示主机选择器。
安全提示
不建议将数据库端口暴露到公网,如需远程管理建议使用 SSH 隧道或 VPN。
性能与维护
这些工具位于应用中已安装数据库应用的管理页面,而非数据库或用户列表,也不在远程服务器注册页面中。打开对应的原生应用,即可管理其本地实例。
MySQL、MariaDB 和 Percona
性能标签页包含:
- 进程:查看连接、用户、数据库、正在执行的语句及持续时间;必要时可终止选中的连接。
- 事务与锁:查看活动事务和锁等待,找出造成阻塞的连接,检查其查询后可将其终止。
- Top SQL:比较语句调用次数、总执行时间和平均执行时间,以及发送或扫描的行数;开始新的观察周期时可重置累计统计。该功能需要
performance_schema。启用操作会修改配置,需要重启服务后生效,并会增加内存占用。
维护标签页包含:
- 表维护:按数据库筛选,查看表大小和碎片情况,并对单个或多个选中的表执行维护。可用操作包括
OPTIMIZE和ANALYZE。 - Binlog:查看二进制日志文件及其大小。清理至此会删除所选文件之前的日志;请确认这些日志已不再用于复制或恢复。
- 复制:查看副本的源主机、复制延迟、IO/SQL 线程状态和最近一次错误。
表维护操作以面板任务的形式执行。请查看任务日志获取执行结果。
PostgreSQL
扩展标签页列出可用扩展及已安装版本。通过面板任务安装或重新安装扩展包,然后点击启用,选择执行 CREATE EXTENSION 的数据库。在 template1 中启用扩展后,新建数据库会继承该扩展。部分扩展还需要重启 PostgreSQL。
性能标签页提供会话和 Top SQL。会话列表显示等待事件、阻塞源、事务持续时间和查询持续时间,并支持终止会话。 Top SQL 使用 pg_stat_statements;启用时会将该模块添加到 shared_preload_libraries,需要重启 PostgreSQL 后生效。
在维护 > 表膨胀中选择数据库,可查看表大小、存活及死亡元组数量,以及最近一次 vacuum/analyze 时间。可对单个表或选中的多个表执行 VACUUM、VACUUM FULL、ANALYZE 或 pg_repack。使用 pg_repack 前需先安装其扩展。这些操作以面板任务的形式执行。 VACUUM FULL 会重写整张表并持有排他锁,在完成前阻塞所有读写。
WAL 标签页显示 WAL 大小、归档成功与失败次数、复制槽及其保留的 WAL,以及复制状态。仅在使用方不再需要复制槽时才删除它。
Redis 和 Valkey
打开性能可查看慢日志、客户端和内存。可重置慢日志、终止客户端连接、查看内存诊断,并将扫描大 Key提交为面板任务。扫描输出请查看任务日志。扫描大型数据集前,请检查服务负载。
推荐配置
在提供参数调优的应用页面中,如有生成推荐配置功能,可根据内存预算、CPU 数量、磁盘类型和应用场景填入推荐值。请检查生成的值并手动保存。推荐值仅供初始配置参考,并非根据应用的实际负载测量得出。
