2.2 PostgreSQL / Redis / MongoDB 运维
一句话判断
这三种库在 1Panel 里的管理界面和 MySQL 高度相似(实例 → 库 → 备份 → 配置),会一个就会仨。但各自有一个“ MySQL 里没有”的关键点:PostgreSQL 的权限语义不同、Redis 的持久化是必修课、MongoDB 的远程实例要先测连接。
PostgreSQL:最像 MySQL,但有三处不同
PostgreSQL 的管理入口和 MySQL 几乎一模一样:实例管理、远程服务器、创建数据库、连接信息、从服务器同步、备份恢复、权限设置、配置、端口、日志。
不同点一:Web 管理工具是 PGAdmin4,不是 phpMyAdmin。要图形化管理点这个按钮跳转。
不同点二:备份用 pg_dump,默认路径 /opt/1panel/backup/database/postgresql。恢复时同样要求上传的压缩包内存在 test.sql 文件。
不同点三:权限设置的含义完全不同。 这个最容易搞混:
| MySQL 的【权限】 | PostgreSQL 的【权限】 | |
|---|---|---|
| 改的是 | 数据库的访问 IP 范围 | 当前数据库绑定用户是否为超级用户 |
在 PostgreSQL 里,“权限”按钮改的是用户身份(超级用户 / 普通用户),不是 IP 白名单。这一点和 MySQL 完全不是一回事,照着 MySQL 的习惯去点,会点出一个超级用户来——生产环境给业务库账号开超级用户,是安全大忌。
配置文件路径:/opt/1panel/apps/postgresql/[数据库名称]/data/postgresql.cnf
同样的警告:错误的配置将导致 PostgreSQL 服务不可用。注意官方文档里 PostgreSQL 的设置页只有“配置修改、端口、日志查看”三个标签——没有“当前状态”和“性能调整”,调优手段比 MySQL 少,得更依赖日志和外部工具。
修改密码的入口改的是绑定用户密码(非默认管理员密码),和 MySQL 的规则一致。
Redis:持久化才是核心课题
Redis 在 1Panel 里的管理更精简:修改密码、Redis Commander(Web 管理)、配置、当前状态、性能调整、端口、持久化。
没有备份/恢复按钮——Redis 的“备份”就是持久化,思路和关系型数据库完全不同。
先把 AOF 和 RDB 搞清楚
官方文档讲得很透,我帮你提炼成一张决策表:
| RDB | AOF | |
|---|---|---|
| 原理 | 某个时间点的数据集快照,fork 子进程写文件 | 把每条写入命令追加到日志 |
| 数据安全 | 有丢失风险,两次快照之间的数据会丢 | 更可靠,最多丢最后一次同步后的数据 |
| 性能影响 | 更小(子进程干活,父进程无磁盘 IO) | 更大(写入要落盘) |
| 文件体积 | 小 | 更大(同数据集) |
| 恢复速度 | 快 | 慢 |
| 大数据集的坑 | fork 子进程很耗时,可能造成服务停顿 | 文件过大时触发重写 |
一句话决策:
- 能接受丢几十秒数据、追求性能 → RDB;
- 一点数据都不能丢(如订单、会话) → AOF;
- 成年人不做选择 → 两个都开(RDB 用于灾难恢复,AOF 用于少丢失)。
AOF 的三个同步频率
appendfsync |
含义 | 适用 |
|---|---|---|
always |
每次写入都同步 | 最安全,最慢 |
everysec |
每秒 | 推荐,性能和安全的平衡 |
no |
不同步(交给操作系统) | 最快,丢数据风险最大 |
官方对 RDB 的一句提醒值得记住:RDB 是“满足任意一个条件时触发持久化”——触发是条件驱动的,条件没满足就不落盘。所以纯 RDB 方案下,宕机丢数据是正常的、可预期的。
Redis 性能调整的三个参数
官方明确支持表单调整:超时时间、最大连接数、最大内存数。
最大内存数是 Redis 调优的第一参数:Redis 是纯内存数据库,内存满了会按淘汰策略删数据。默认的淘汰策略如果是不淘汰,内存满了 Redis 会拒绝写入。
调优思路:
| 场景 | 建议 |
|---|---|
| 纯缓存 | 最大内存设小点,淘汰策略设 LRU |
| 存会话/重要数据 | 内存给够,别让它随便淘汰 |
| 和 MySQL 抢同一台机器 | 算清楚,Redis 占多少、MySQL 的 buffer pool 占多少 |
当前状态页面可以看内存分配、查询命中率——这是判断 Redis 健康度的两个核心指标。命中率持续走低,说明缓存策略或业务访问模式有问题。
Redis Commander
官方提供了 Redis Commander 作为 Web 管理工具。用途:看 key、查数据结构、手动删 key。
实战价值:调试缓存问题时,能直接看到 key 的实际值和过期时间,比命令行 redis-cli 直观。但注意——Web 工具里删 key 是直接生效的,生产环境悠着点。
MongoDB:最精简,但远程实例有讲究
官方文档给 MongoDB 的篇幅最少,能力也确实精简。管理路径是 数据库 → MongoDB,管理应用商店装的实例和远程实例。
远程实例:先测连接再保存
创建远程 MongoDB 的参数:
| 参数 | 说明 |
|---|---|
| 名称 | 1Panel 里识别用的名字 |
| 版本 | 可选 6.x、7.x、8.x |
| 地址、端口 | 默认端口 27017 |
| 初始数据库 | 用于认证的库,默认值 admin |
| 用户名、密码 | 远程实例凭据 |
| 超时时间 | 连接超时 |
官方的硬性要求:
保存前必须先点击连接测试。
初始数据库这个参数很多人会填错:它不是你要连的业务库,而是认证用的库。MongoDB 的认证是库级隔离的,用户在哪个库创建的,就得用那个库认证。绝大多数远程 MongoDB 用 admin 认证,别随手填成业务库名。
解绑远程实例:只删除 1Panel 里的连接信息,不会删除远程数据——这个设计很安全,不用担心手滑。
MongoDB 的权限模型
创建数据库时的权限选项和 MySQL 完全不同:
| 权限 | 含义 |
|---|---|
dbOwner |
数据库所有者(当前库的完整权限) |
read |
只读 |
readWrite |
读写 |
userAdmin |
用户管理 |
给业务应用的账号,一般用 readWrite 就够了,别给 dbOwner。userAdmin 更是几乎不应该给业务账号——它意味着能改库里的用户和权限。
删除的警告
官方特别提示:
删除数据库或在恢复前清空集合会直接影响业务数据。操作前应确认备份可用,并核对当前选择的 MongoDB 实例。
“核对当前选择的 MongoDB 实例”这句话是重点——MongoDB 支持多实例切换,删库前先看清楚实例选择器选的是哪个。删错实例里的库,这种事故真实发生过。
异常状态处理
数据库被外部删除后,页面会标记异常状态;可以使用【从服务器同步】更新 1Panel 中的记录。
这是“从服务器同步”的另一个用途:面板和实际不一致时,用它对齐。
Mongo Express 是它的 Web 管理工具,只用于本地实例(没装时页面会引导你去应用商店装)。
四种库的 Web 管理工具对照
| 数据库 | Web 工具 | 注意 |
|---|---|---|
| MySQL | phpMyAdmin、Adminer | 两个可选 |
| PostgreSQL | PGAdmin4 | —— |
| Redis | Redis Commander | 删 key 直接生效 |
| MongoDB | Mongo Express | 仅本地实例 |
共同特点:都是通过应用商店安装、以容器方式运行、从数据库页面跳转。它们是“应用”,不是面板内置功能——OpenResty 停了影响网站,这些工具的容器停了就进不去管理页面(但数据库本身不受影响)。
混合架构的实战建议
真实项目里常常是多种库混用,一个典型的组合:
| 角色 | 选什么 | 在 1Panel 里怎么管 |
|---|---|---|
| 主业务数据 | MySQL 或 PostgreSQL | 按本节方式调优 + 定时备份 |
| 缓存 / 会话 | Redis | 配好持久化 + 最大内存 |
| 日志 / 文档型数据 | MongoDB | 注意认证库和权限最小化 |
跨库查询别指望面板:1Panel 是分别管理,不提供跨库关联。要做数据联动,在应用层写。
资源分配的算账:四种库挤在一台机器上,把内存预算写清楚:
机器总内存 8G
系统 + OpenResty + 应用:~2G
MySQL buffer pool:~2G
Redis 最大内存:~1.5G
MongoDB:~1G
剩余留给系统缓存和峰值
不这么算,迟早 OOM。 而且一旦 OOM,Linux 会杀进程,可能杀掉任何一个库,排查起来很痛苦。
本节要点
- PostgreSQL 的【权限】改的是是否超级用户,和 MySQL 的 IP 白名单不是一回事;
- Redis 持久化:能丢几十秒用 RDB,一点不能丢用 AOF,推荐
everysec; - Redis 调优第一参数是最大内存数;
- MongoDB 远程实例保存前必须连接测试,初始数据库默认
admin; - MongoDB 删库前核对实例选择器;
- 多库混用要提前算好内存预算。
延伸阅读:Redis 持久化与 MongoDB 远程连接的操作细节,见 《1Panel 官方文档:功能手册》 的数据库章节;新手入门可先看 《1Panel 常见问题与排错实战》。
下一节:管理都会了,接下来是本章的重头戏——备份与恢复演练,见 2.3 节。
