安装完 PostgreSQL 之后,下一步要搞清楚的是:这个数据库服务怎么启动、怎么停止、怎么重启,以及怎么确认它当前是不是正在运行。
这一步很重要,因为很多“连不上数据库”的问题,本质上都不是 SQL 写错了,而是服务压根没起来。
PostgreSQL 不是一个普通文本文件,而是一个持续运行的服务程序。
所以你平时会做这几类操作:
不同系统命令不完全一样,但思路完全一致。
如果你是通过 Homebrew 安装的 PostgreSQL,通常会用 brew services 来管理服务。
brew services start postgresql@17
brew services stop postgresql@17
brew services restart postgresql@17
brew services list
如果你看到 PostgreSQL 对应服务处于 started 一类的状态,就说明它已经在运行。
很多 Linux 发行版会用 systemctl 管理 PostgreSQL 服务。
sudo systemctl start postgresql
sudo systemctl stop postgresql
sudo systemctl restart postgresql
sudo systemctl status postgresql
有些系统的服务名可能带版本号,比如 postgresql-17。如果通用名字不生效,就需要看本机实际服务名。
初学阶段,常见重启场景通常有这几种:
如果你只是执行查询、建表、插入数据,一般不需要频繁重启数据库服务。
最直接的方法有两个。
也就是上一节提到的:
brew services listsystemctl status postgresql如果你能成功执行:
psql postgres
并进入 psql 命令行界面,那么通常说明服务已经正常工作。
初学者遇到问题时,不要一下子怀疑自己把数据库“搞坏了”。先按顺序排查最常见的原因。
表面上你执行了启动命令,但服务其实立刻退出了。这时不要只看命令有没有返回,而要继续看状态信息。
重点先确认:
比如你安装的是 postgresql@16,却执行了 postgresql@17 的启动命令。或者 Linux 上真实服务名并不是 postgresql。
这类问题最常见,也最容易忽略。
PostgreSQL 默认使用 5432 端口。如果这个端口已经被其他进程占用,服务可能无法正常启动。
遇到这类情况,重点不是立刻改很多配置,而是先确认:
5432PostgreSQL 需要数据目录来保存数据库文件。如果初始化不完整,或者目录权限不对,服务也可能起不来。
对初学者来说,看到这类问题时,先不要乱删数据目录。先确认安装方式、初始化步骤和目录权限是否正确。
在 Linux 上,PostgreSQL 通常由专门的系统用户运行。如果你手动改过目录权限、数据目录路径或启动方式,可能导致服务没有权限读写文件。
这时要优先检查权限,而不是反复重试同一条启动命令。
如果你发现连不上 PostgreSQL,可以先按这个顺序看:
psql 实际连接一次这个顺序比一开始就查很多高级配置更有效。
你现在至少要掌握这四件事:
下一篇开始进入“连接”这个话题:怎么用 psql 连本地数据库,以及连接参数到底是什么意思。