见微知著 · TheSignalwise

记录每一道灵光的信号,洞见背后的深刻逻辑。 在这里,我分享硬核而有趣的技术实践、天马行空的创意想法,以及点滴生活瞬间——让微小的信号汇聚成启发未来的智慧。

在 M 系列 Mac(Apple Silicon)上安装与配置 PostgreSQL

本文面向 M 系列(M1/M2/M3)芯片的 macOS 用户,涵盖安装 PostgreSQL、启动服务、以及创建业务数据库和账号的全过程。


PostgreSQL(简称 pgsql)是目前最流行的开源关系型数据库之一。在 M 芯片的 macOS 上安装它和 Intel 版略有差别,尤其是路径和 Homebrew 的目录不同。本文将完整介绍安装、启动、以及如何创建业务库和账号。


一、环境准备

确保系统已经安装 Homebrew(在 M 系列 Mac 上路径是 /opt/homebrew):

brew -v

若未安装,可在终端运行:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


二、安装 PostgreSQL

直接使用 Homebrew 安装指定版本(这里以 14 为例):

brew install postgresql@14

安装完成后,Homebrew 会自动初始化数据库集群,路径位于:

/opt/homebrew/var/postgresql@14


三、启动与验证

  1. 启动服务:
brew services start postgresql@14

  1. 验证服务是否运行:
pg_ctl -D /opt/homebrew/var/postgresql@14 status

  1. 查看监听端口:
lsof -iTCP:5432 -sTCP:LISTEN

  1. 登录数据库(初始超级用户与本机用户名一致,例如 chris):
/opt/homebrew/opt/postgresql@14/bin/psql -d postgres

进入后,可以查看已有数据库和用户:

\l   -- 列出数据库
\du  -- 列出用户


四、配置环境变量

为了能直接使用 psql 命令,需要把二进制路径加入环境变量。在 ~/.zshrc 中添加:

export PATH="/opt/homebrew/opt/postgresql@14/bin:$PATH"

执行:

exec zsh

现在直接运行 psql --version 即可。


五、创建业务数据库和账号

假设我们要为 CloudFinOps 云账通 项目创建独立数据库和账号。

  1. 进入 PostgreSQL:
psql -U chris -d postgres

  1. 创建业务用户(替换为你自己的强密码;如果包含特殊字符如 @,记得在连接串里 URL 编码):
CREATE ROLE cloudfinops WITH LOGIN PASSWORD 'Strong@Pass123';

  1. 创建业务数据库,并指定拥有者:
CREATE DATABASE cloudfinops_db OWNER cloudfinops;

  1. 授权用户访问数据库:
GRANT ALL PRIVILEGES ON DATABASE cloudfinops_db TO cloudfinops;

  1. 测试连接:
psql -U cloudfinops -d cloudfinops_db


六、获取连接字符串

在应用(如 Python、Node.js、Java 等)中通常需要连接 URI:

postgresql://USERNAME:PASSWORD@HOST:PORT/DATABASE

例如:

postgresql://cloudfinops:Strong%40Pass123@localhost:5432/cloudfinops_db

注意:@ 被转义为 %40,否则会导致解析错误。


七、常见问题

  • 提示 role "postgres" does not exist
    Homebrew 初始化时只会创建与你本机用户名相同的超级用户。如果确实需要 postgres 账号,可以手动创建: CREATE ROLE postgres WITH LOGIN SUPERUSER PASSWORD 'YourPass';
  • psql 默认报 “database … does not exist”
    默认会尝试连接与用户名同名的数据库,可以用: createdb $(whoami) 来创建一个同名数据库。

八、总结

在 M 芯片 Mac 上安装 PostgreSQL 与 Intel 版主要区别在于 Homebrew 的安装路径。通过 Homebrew 安装后,记得将二进制加入 PATH,并使用本机用户名作为初始超级用户。之后为业务项目创建独立的数据库和账号,即可实现隔离与安全控制。

这样一来,你就可以轻松在 macOS 上搭建出一套 PostgreSQL 环境,为自己的 CloudFinOps 或其他应用提供数据支撑。 🚀

Posted in

留下评论