哥们儿,最近有个朋友问我,想在 Linux 上装个 PostgreSQL 数据库,怎么搞最省事?我一听就乐了,这事儿我干过无数回了,从第一次折腾到后来闭着眼睛都能搞定,中间踩过的坑能装一箩筐。其实装个 PG 数据库真不是啥高科技活儿,但要是没找对路子,光依赖源里的默认包,或者一股脑儿用源码编译,那可真能把你折腾到怀疑人生。今天我就跟你唠唠,怎么在 Linux 上顺顺当当地把 PostgreSQL 请进门,顺便避几个常见的雷。

先说最简单的方案——用系统自带的包管理器。比如你在 Ubuntu 或 Debian 上,直接敲个 ,几秒钟就能装好。这法子适合那种“我就想快点用上”的场景,比如本地测试或者小项目。但问题来了,系统源里的版本往往比官方慢半拍,比如 Ubuntu 20.04 默认带的还是 PostgreSQL 12,而官方已经出到 16 了。你如果图省事装了旧版,后面想升级就头疼——数据迁移、配置调整,搞不好还得重来。我有个朋友就吃过这亏,项目上线后发现新版特性用不了,硬着头皮折腾了两天才换掉。所以,除非你明确知道自己不需要最新功能,否则别偷这个懒。
那有人会问,我直接去官网下载源码编译安装,总行了吧?这法子确实能拿到最新版,而且定制性强,比如想把数据目录放在单独的分区,或者编译时带上特定扩展。但问题是,编译过程太考验耐心了。你得先装好一堆依赖,像 、、、 这些,缺一个就报错。我回忆自己第一次编译时,光解决依赖冲突就花了半小时,发现少装了个 ,气得我差点摔键盘。而且编译完还得手动初始化数据库、配置服务、设置开机自启,每一步都藏着坑。除非你是个喜欢折腾的极客,或者公司有严格的定制需求,否则我真不建议普通人走这条路。
最推荐的做法,是用 PostgreSQL 官方提供的 APT 或 YUM 仓库。这法子既避免了系统源版本老旧的问题,又不用自己编译,相当于官方帮你把包打包好了。比如在 Ubuntu 上,只需要添加官方的 APT 源,然后 ,就能拿到最新稳定版。我去年给公司搭测试环境就是这么干的,全程用了不到 10 分钟,连配置文件路径都自动给你设好。而且官方源里的包会跟着小版本更新走,安全补丁一出来就能收到,省心得多。唯一的门槛是先配一下源,官方文档写得清清楚楚,照着敲几行命令就行。
安装完了,别急着高兴,数据库默认的配置有几个坑得先填上。第一,PostgreSQL 默认只监听本机地址,如果想让其他机器连进来,得在 里改 参数,比如改成 。第二,默认的认证方法是 或 ,意思是系统用户和数据库用户同名才能连。想用密码登录,就得在 里把 和 行的认证方式改成 或 。我第一次装的时候就栽在这儿——用 本地连得好好的,程序一访问就报错,查了半天才发现是认证方式没改。这两个文件都在 下,改完记得重启服务。
说到安全,还有个容易被忽略的点——默认的 用户密码是空的。安装完后,第一时间用 进数据库,然后执行 设个强密码。别嫌麻烦,我见过有人装了数据库放外网,结果被扫描工具扫到弱口令,数据被勒索的案例。另外,建议创建一个普通用户来管理业务数据库,别老用超级用户干活。比如执行 再 ,这样即使该用户密码泄露,影响范围也有限。数据库安全这种事,宁可多花五分钟,也别事后拍大腿。
对了,还得说说性能调优。默认配置是针对小内存机器优化的,比如共享缓冲区只有 128 MB,工作内存只有 4 MB。如果服务器有 16 GB 内存,不改这些参数简直是暴殄天物。建议根据官方文档或在线计算器,把 设成内存的 25% 左右, 设成 50% 左右, 根据并发数适当调高。我有次给一个数据分析项目调优,光是把 从 128 MB 提到 4 GB,查询速度就快了三倍。当然,别一上来就设得太大,得结合实际负载测试,否则内存爆了反而拖慢系统。
聊点实战经验。如果要装生产环境,强烈建议用逻辑卷管理(LVM)或独立分区来放数据目录,这样后期扩容更方便。而且最好把 WAL 日志和数据文件分开放到不同的磁盘上,能显著提升写入性能。我有个客户做电商,订单量大的时候数据库写入瓶颈严重,后来听了我的建议,把 WAL 挪到 SSD 上,数据放 HDD,性能直接翻倍。另外,别忘了定期做备份,用 做逻辑备份或 做物理备份都行,但一定要测试恢复流程。备份文件只放本地不算真正的备份,得扔到远程存储上,否则机房断电就全完了。
说到底,装 PostgreSQL 这事儿就像学骑自行车——第一次手忙脚乱,多来几次就能闭着眼睛搞定。关键是要选对方法、踩准步骤、留好退路。你如果还是新手,就从官方仓库安装开始,把配置和安全这两关过了,再慢慢研究性能调优。别想着一步到位,数据库这东西,越用越有心得。要是哪天在安装过程中碰到怪问题,随时来找我,咱们一起盘它。


