### [雨云上 PostgreSQL 怎么跑:和 MySQL 选型对比与部署实录](https://www.jiyueip.com/article/12423) **Published:** 2026-07-28T13:03:54 **Author:** 斑斓助理 **Excerpt:** 在雨云 VPS 上跑 PostgreSQL 还是 MySQL?基于实战的选型对比,以及 PostgreSQL 的安装、pg_hba 访问控制、备份(pg_dump/BorgBackup/对象存储)与按需调优,并划清合规边界。 在雨云上我既跑 MySQL([之前写过一篇安装、备份与调优实录](https://www.jiyueip.com/article/12409)),也跑 PostgreSQL,后台常被问同一个问题:到底选哪个?这问题没有标准答案,得看你的业务长什么样。这篇不堆参数,直接说我在雨云上两个都装机跑过之后,是怎么做选型的,以及 PostgreSQL 这条线怎么装、怎么备、怎么调。 ## 先说选型:什么场景选 PostgreSQL 如果你符合下面任意一条,我更倾向 PostgreSQL: - **存的是半结构化数据**:比如配置、标签、元数据经常变字段,PostgreSQL 的 JSONB 类型能直接当文档库用,又能建索引,比在 MySQL 里塞长文本舒服太多; - **查询复杂、要联表分析**:多表 JOIN、窗口函数、CTE(公用表表达式)这类,PostgreSQL 的优化器和语法都更顺手; - **要 GIS 或时序**:配合 PostGIS、TimescaleDB 这类扩展,地理信息和时序数据几乎是开箱即用,MySQL 做起来费劲; - **事务边界要求严**:PostgreSQL 默认事务和约束更”较真”,对金额、库存这类不能出错的数据更稳。 _wp 这类默认用 MySQL 的程序不在讨论范围内——WordPress 人家就认 MySQL,别硬改。_ ## 什么场景还是 MySQL 更省心 - **生态和资料多**:宝塔、1Panel 面板一键建站基本都围绕 MySQL,踩坑一搜一大把,新手最友好; - **业务以简单读写为主**:普通博客、商城、CMS,MySQL 完全够,没必要为用 Postgres 而用; - **要和大量现成程序对接**:很多开源项目只认 MySQL 驱动,强行换库等于重写连接层。 所以一句话:标准建站走 MySQL,文档/分析/GIS/强事务需求走 PostgreSQL。雨云的香港、美国节点免备案,两个都能直接跑;国内节点该备案照备。 ## PostgreSQL 在雨云上怎么装 登录机器后直接用发行版包管理器装最稳,版本随系统走(较新发行版一般在 14~16 之间),不用去官网下二进制,省心也少依赖坑。 装完第一件事不是急着建库,而是把**访问控制**定好: - `pg_hba.conf` 决定谁能连、从哪连。默认只允许本地 `peer`/`md5`,远程要用的话得加一条放行规则,并且限定来源 IP,别写 `0.0.0.0/0` 全放; - `postgresql.conf` 里 `listen_addresses` 默认是 `localhost`,要对外提供服务就改成具体网卡地址或 `'*'`,配合 pg\_hba 一起收口; - 新建一个专属业务用户和库,别拿 `postgres` 超级用户直接跑应用。 这一步做对,后面少一半安全事故。 ## 备份怎么做才不慌 和 MySQL 一样,备份是底线。PostgreSQL 自己的工具就够用: - **逻辑备份**:`pg_dump` 导出单个库,`pg_dumpall` 导出全实例,配合 cron 定时跑,简单可靠; - **物理备份**:数据量大了用 `pg_basebackup` 做基础备份,再靠 WAL 归档做时间点恢复; - **落到异地**:dump 出来的文件我习惯再推一份到对象存储([雨云对象存储那篇讲过搭配用法](https://www.jiyueip.com/article/11963)),或者用 [BorgBackup 做去重加密](https://www.jiyueip.com/article/12306),和 MySQL 的备份思路一致。 一个容易忽略的点:备份完要**定期恢复演练**,光备不验等于没备。我一般每月挑一份 dump 在临时机器上恢复一次,确认能起来。 ## 几个调优项,按需动 PostgreSQL 默认配置偏保守(按小内存机器调的),雨云上如果你机器有 2G 以上内存,可以动这几项: - `shared_buffers`:通常设成物理内存的 1/4 左右,给缓存用; - `work_mem`:每个排序/哈希操作的内存,调大能少落盘,但别乘上并发数算爆; - `effective_cache_size`:告诉优化器系统有多少缓存可用,设大点让它能选索引; - **连接数**:PostgreSQL 每个连接占内存,高并发别无脑加 `max_connections`,前面架一层 pgbouncer 连接池更稳。 雨云的云盘是 SSD,对 PostgreSQL 的随机读写很友好,不用额外折腾磁盘。宝塔、1Panel 面板上也能挂 PostgreSQL 管理插件,可视化和命令行结合用最顺。 ## 合规边界 和跑 MySQL 一样,数据库里别存用户明文密码、身份证、银行卡这类敏感明文,按《个人信息保护法》做脱敏和加密存储;《数据安全法》要求做好访问控制和备份;用途限定在正常业务,不把数据库能力用于突破国家网络管控。香港、美国节点免备案,但合规底线一样守。 ## 我踩过的坑 - **pg\_hba 没放行来源 IP**:应用连不上,排查半天才发现是客户端 IP 不在允许列表; - **listen\_addresses 还是 localhost**:改了 pg\_hba 却忘了改监听,外部死活连不进; - **用 postgres 超级用户跑应用**:权限过大,一旦程序有漏洞就是全库风险,后来拆了专属低权用户; - **locale 不一致导致排序乱**:建库时没指定,中文排序和预期不同,重建库指定 `C` 或 `zh_CN.UTF-8` 才正常; - **连接数打满**:高并发没加连接池,`max_connections` 被占满后新连接全拒,架 pgbouncer 后解决。 ## 选型小结 别被”哪个更强”带节奏。我的经验是:标准 Web 建站、想省心、要对接现成程序,MySQL 优先;要 JSONB、复杂分析、GIS、强事务,PostgreSQL 更对路。两个在雨云香港、美国节点上都能免备案直接跑,价格也都不贵、还便宜,性价比都不差。如果你还在挑机器,[用优惠码 admin01 五折](https://www.jiyueip.com/link/5617)开一台先都试一遍最直观。 **Tags:** 云服务器, 建站教程, 网站运维, 雨云, 雨云优惠码 **Categories:** 行业洞察 ---