第二章 数据库进阶
一句话概括这一章
数据库是“平时不起眼、出事要人命”的典型。1Panel 把 MySQL、PostgreSQL、Redis、MongoDB 的日常管理做成了图形界面,但进阶的关键不在点按钮,而在于:知道配置文件挂在哪、知道性能参数按什么调、知道备份恢复怎么演练、知道什么时候该上集群。
基础操作(建库、改密码、phpMyAdmin 管理数据库)我们默认你已经会了。这一章讲的是这四件事背后的门道。
这一章解决什么问题
| 小节 | 场景 | 一句话答案 |
|---|---|---|
| 2.1 MySQL 管理与调优 | 慢查询多、想改配置又怕起不来 | 配置文件挂在固定路径,改之前看当前状态,有预设优化方案 |
| 2.2 PostgreSQL / Redis / MongoDB 运维 | 不只会 MySQL,还有三种库要管 | 四种库的管理界面同构,但各自特性不同(尤其 Redis 持久化) |
| 2.3 数据库备份与恢复演练 | 备份做了,但不确定能不能恢复 | 备份用 mysqldump/pg_dump,导入有格式要求,演练是唯一验证 |
| 2.4 数据库集群(企业版) | 单库扛不住、要高可用 | 专业版/企业版可管 MySQL/PostgreSQL/Redis 主从,但别把复制当自动故障切换 |
先打通一个认知:1Panel 的数据库是“容器化”的
这一点很多熟手也没真正意识到:应用商店安装的数据库,都是 Docker 容器。
这个事实解释了后面一大堆现象:
| 现象 | 根源 |
|---|---|
127.0.0.1:3306 有时候连不上 |
容器网络和宿主机网络不是一回事,连接信息要按页面提示选 |
配置文件在 /opt/1panel/apps/... |
容器配置文件挂载到宿主机 |
| 日志在“数据库设置 → 日志”里看 | 那是容器日志,不是宿主机系统日志 |
| 卸载数据库应用会影响数据库 | 数据库本身就是个应用 |
一句极其重要的提醒:连接数据库时,看页面上的【连接信息】按钮,它会根据本地容器、宿主机访问、远程访问三种场景给出不同的地址。别背 127.0.0.1。
四种数据库的能力对照
1Panel 对四种数据库的管理能力不是对等的,先看清楚边界:
| 能力 | MySQL | PostgreSQL | Redis | MongoDB |
|---|---|---|---|---|
| 远程实例管理 | 支持 | 支持 | 不支持 | 支持 |
| Web 管理工具 | phpMyAdmin、Adminer | PGAdmin4 | Redis Commander | Mongo Express |
| 图形化性能调整 | 支持(含预设方案) | 不支持表单式性能调整 | 支持(超时/连接数/内存) | 不支持 |
| 当前状态指标 | 支持 | 不支持 | 支持 | 不支持 |
| 慢日志查看 | 支持 | 不支持 | 不支持 | 不支持 |
| 持久化配置 | —— | —— | 支持(AOF/RDB) | —— |
| 集群(付费) | 支持 | 支持 | 支持 | 不支持 |
发现规律了吗:MySQL 的管理最完整,Redis 侧重持久化和内存,MongoDB 最精简——官方文档里 MongoDB 的篇幅本身就短,能力也确实少一些。
远程实例是个被低估的能力:你已经有一台 RDS 或者别的机器上的数据库,也能纳进 1Panel 统一管理,不一定非得用应用商店装。MongoDB 甚至明确要求“保存前必须先点击连接测试”。
改配置前的三条铁律
这一章会反复出现配置修改,先把规矩立好:
铁律一:错误的配置会让数据库服务起不来。 官方文档每种库都写了同一条警告。这不是吓唬——MySQL 的 innodb_buffer_pool_size 设成超过机器内存,服务直接挂。
铁律二:有“恢复默认配置”这个后悔药。 配置页面通常提供恢复默认配置的功能。但它恢复的是默认值,不是你的业务最佳值,恢复后还要重新调。
铁律三:改前先备份,改后先看日志。 数据库配置改完,先在应用里跑一遍增删改查,别等用户反馈。
配置文件的位置(官方文档给出的默认挂载路径,记忆用):
| 数据库 | 配置文件 |
|---|---|
| MySQL | /opt/1panel/apps/mysql/[数据库名称]/conf/my.cnf |
| PostgreSQL | /opt/1panel/apps/postgresql/[数据库名称]/data/postgresql.cnf |
| Redis | /opt/1panel/apps/redis/[数据库名称]/conf/redis.conf |
权限管理:一个常被忽略的安全细节
创建数据库时的访问权限有三个选项:
| 选项 | 含义 | 什么时候用 |
|---|---|---|
| 本地服务器(默认) | 只允许本机连接 | 绝大多数情况,最安全 |
| 所有人 | 任何 IP 都能连 | 基本不要选 |
| 指定 IP | 只允许列出的 IP | 跨服务器调用时 |
“所有人”这个选项,生产环境几乎不应该出现。 数据库暴露在公网 + 弱密码,是服务器被打的最常见路径之一。
即使选了“指定 IP”,官方也提醒:要开外网访问,还得在防火墙里放行对应端口(MySQL 默认 3306)。也就是说,权限和防火墙是两道独立的门,两道都得上锁。
版本边界
这一章里唯一的付费功能是数据库集群(MySQL/PostgreSQL/Redis 主从部署),仅专业版和企业版可用,且需要许可证、节点管理能力和数据库集群权限。价格以官网为准。
社区版完全够用的场景:单机数据库、远程实例纳管、备份恢复、性能调优——这些日常运维一分钱不用花。
学完这一章你会获得什么
- 敢改数据库配置,并且知道改错了怎么救回来;
- 会按“当前状态”的指标做基础调优,而不是瞎猜参数;
- Redis 持久化知道选 AOF 还是 RDB;
- 有一套可执行的备份恢复演练流程;
- 清楚集群能做什么、不能做什么。
更完整的参数说明建议对照 《1Panel 官方文档:功能手册》 的“数据库”章节。
下一节:我们从用得最多的 MySQL 讲起。
