PostgreSQL作为目前最流行的开源关系型数据库之一,功能强大且完全免费,很多项目在开发阶段都需要在本地跑一个PostgreSQL实例。在Mac上安装PostgreSQL的方式有好几种,比如直接从官网下载安装包、使用Docker镜像,或者通过Homebrew命令行安装。其中Homebrew方式最受开发者欢迎,因为它安装简单、升级方便、管理干净,不会在系统里留下各种残留文件。本文将带你一步步完成整个安装和配置流程,并覆盖使用中可能遇到的各种问题。

一、安装前的准备工作
Homebrew是Mac上的包管理工具,如果还没有安装,先打开终端执行下面的命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装过程可能较慢,取决于网络情况。如果提示权限问题,按提示输入开机密码即可。安装完成后建议先执行brew update刷新一下软件源,确保能获取到最新的PostgreSQL版本信息。另外可以先用brew search postgresql查看可用的软件包,你会看到postgresql@14、postgresql@15、postgresql@16等多个版本。不带版本号的postgresql指向当前默认的稳定版本,一般情况下直接安装它就行;如果项目对版本有明确要求,则选择对应的版本号包。
还需要注意一点:如果你的Mac上曾经通过官方安装包装过PostgreSQL,建议先卸载干净再使用Homebrew,否则可能出现端口冲突或者命令指向混乱的问题。可以通过which psql检查当前命令实际指向哪里,正常情况下Homebrew安装的psql应该位于/opt/homebrew/bin/psql(Apple Silicon机型)或/usr/local/bin/psql(Intel机型)。
二、安装PostgreSQL并初始化数据库
执行安装命令:
brew install postgresql@16
安装完成后终端会有提示,告诉你这个包没有链接到系统路径中,需要手动执行link操作,同时建议把相关路径加入环境变量。按照提示执行:
brew link postgresql@16 --force echo 'export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
接下来需要初始化数据库。如果是安装不带版本号的postgresql包,Homebrew会自动完成初始化;而版本号包需要手动执行initdb命令:
initdb /opt/homebrew/var/postgresql@16
这一步会创建数据目录,生成默认配置文件postgresql.conf和pg_hba.conf,并创建一个与当前Mac用户名同名的数据库超级用户。所有数据库文件都存放在这个目录里,备份或迁移时直接操作它即可。初始化完成后,执行postgres -V和psql -V确认版本信息,能正常输出说明安装成功。
三、启动服务与连接测试
启动PostgreSQL有两种方式。第一种是前台运行,执行postgres -D /opt/homebrew/var/postgresql@16,终端关闭服务就停止,适合临时调试。第二种是推荐的方式,使用brew services让它作为后台服务常驻运行:
brew services start postgresql@16 # 开机自启并后台运行 brew services stop postgresql@16 # 停止服务 brew services list # 查看服务状态
服务启动后,用psql连接测试。直接输入psql postgres即可进入默认的postgres数据库,看到版本号提示符说明连接成功。进入交互模式后可以执行一些基本操作:
-- 创建一个开发用的数据库 CREATE DATABASE mydb; -- 创建用户并授权 CREATE USER devuser WITH PASSWORD 'dev123456'; GRANT ALL PRIVILEGES ON DATABASE mydb TO devuser; -- 查看所有数据库 \l -- 退出 \q
默认情况下,PostgreSQL只监听本机连接,且采用trust认证模式,本机连接不需要密码,这在本地开发环境很方便。如果需要远程连接,需要修改postgresql.conf中的listen_addresses参数,并在pg_hba.conf中配置对应的认证规则,生产环境下务必使用密码认证而不是trust。
四、常见问题排查与日常维护
连接时报错psql: error: connection refused,大概率是服务没启动,用brew services list检查状态,如果显示error状态,可以查看日志文件定位原因,日志通常位于数据目录下的pg_log或log子目录中。另一个常见错误是端口5432被占用,可能是旧版本实例还在运行,用lsof -i :5432找出进程并结束它。
如果遇到FATAL: database "xxx" does not exist,是因为psql默认尝试连接与用户名同名的数据库,执行createdb 用户名创建一个即可。版本升级时推荐使用内置的pg_upgrade工具,或者借助brew services stop停掉旧服务、安装新版本后按提示迁移数据目录。要彻底卸载的话,执行brew uninstall postgresql@16并删除数据目录:
brew uninstall postgresql@16 rm -rf /opt/homebrew/var/postgresql@16
日常使用中,建议养成定期用pg_dump备份数据的习惯,例如pg_dump mydb > mydb_backup.sql,恢复时用psql mydb < mydb_backup.sql。数据无价,尤其是开发到一半的数据库结构,备份一份总不会错。掌握这些命令后,Mac本地的PostgreSQL环境基本就能稳定运转了。
PostgreSQL安装HomebrewMac数据库修改时间:2026-09-12 19:30:27