装Postgres这事儿,说难不难,说简单吧,第一次碰的人还真容易栽跟头。我见过太多人卡在“装上了但连不上”“连上了但密码不对”“密码对了但权限没有”这种连环坑里,对着黑乎乎的终端窗口怀疑人生。今天这篇就按我自己的实操经验,把从下载到跑通第一条SQL语句整个捋一遍,每一步都告诉你为什么这么做,踩过的坑也一并指出来,你看完照着敲,基本能一次过。

先说下载安装包这件事。很多人上来就跑去官网点那个大大的“Download”按钮,结果下回来一个带图形界面的安装器,一顿Next到底,装完却不知道装到哪了。我的建议是,如果你用的是Linux服务器,直接走系统自带的包管理器最省心。Ubuntu或Debian系就敲,CentOS或RHEL系就用。Windows和macOS用户也别慌,官网那个安装器其实挺好用,但装的时候一定要记住你设置的超级用户密码,这个密码后面天天要用,忘了就得去改配置文件,麻烦得很。
装完之后,很多人会直接去敲,然后一脸懵地发现系统提示“command not found”。这不是你没装成功,而是Postgres的二进制文件没加到PATH里。Linux下默认装完,psql在或者下面,你得手动软链一下,或者干脆用全路径执行。我一般直接,一步到位。Windows用户反而没这个烦恼,安装器会自动配好环境变量,但macOS用户用Homebrew装的话,记得看它装完输出的“Warning”提示,里面会明确告诉你接下来要执行哪几条命令来设置PATH。
接下来是初始化数据目录。这一步很多人会跳过,因为官方文档没说必须做,但你不做,后面启动服务就会报错“data directory has no pgnf”。Debian系的包装完会自动初始化一个叫的集群,直接用就行。但CentOS用yum装完后,数据目录是空的,你得手动执行,它会帮你生成下的所有配置文件。这一步做完,服务才能正常启动。如果你是自己编译源码安装的,那就更得手动执行,这个命令会告诉你初始密码设置成什么,千万别把那个提示信息划走不看。
启动服务这块,Linux下用,然后设置开机自启。启动成功后,别急着高兴,先检查一下状态,,看到绿色的“active (running)”才是真的起来了。这时候你可能会想:“那我直接psql连接呗?”别急,Postgres默认只监听本地回环地址,而且初始用户是,系统里还没有这个角色的密码。你得先切换到系统用户:,进去之后用命令给这个超级用户设个密码。设完密码,再编辑一下,把和两行的认证方式从改成,这样你才能用密码远程连接。
配置文件改完,必须重启一次服务才能生效。很多人改完配置直接接着用,结果连接还是报错,急得团团转。记住,Postgres的配置改动,要么重启服务,要么用重载,二选一。但的改动,我建议直接重启,因为重载有时候不太可靠。重启完,再试,输入你刚设的密码,能看到提示符,恭喜你,这就算真正装好了。
但装好和用好是两回事。我强烈建议你顺手做几件事:第一,创建一个业务专用账号,别天天用超级用户跑业务,,然后。第二,测一下远程连接,如果你有防火墙,记得放行5432端口,否则你从别的机器连过来会直接超时。第三,看一眼日志文件,默认在下面,里面会记录启动时的警告和错误,很多你感觉“莫名其妙”的问题,日志里其实都写得很清楚。
说一个我踩过的坑。Linux下用apt装的Postgres,它的数据目录默认是,但你用命令查看时,可能会看到两个集群,一个是默认的,另一个可能是你之前手动创建的。这时候如果你直接改默认集群的配置,但连接时用了另一个集群的端口,就会出现“我明明改了配置怎么不生效”的错觉。解决办法很简单,用确认你到底在操作哪个实例,端口是多少,别凭感觉来。
从下载到敲出第一条,整个过程其实就六步:装包、初始化、改密码、改认证方式、重启、建库建用户。每一步都不难,但每一步都有对应的坑。你现在照着这篇文章走一遍,遇到报错别慌,先把报错信息复制到搜索引擎里看一遍,百分之九十的问题,别人早就遇到过并且给出解决方案了。装完这遍之后,你会发现Postgres其实比MySQL要规矩得多,文件结构清晰,日志信息明确,只要你愿意花十分钟读一下它的文档,后面用起来会非常顺手。


