Mac OS 上安装 PostgreSQL(千字长文)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

前言:为什么选择在 Mac OS 上安装 PostgreSQL?

在数字化时代,数据库作为数据存储的核心工具,对开发者而言至关重要。PostgreSQL 以其高性能、开源特性和对复杂查询的支持,成为开发者的热门选择。对于 Mac 用户而言,无论是学习数据库基础,还是构建个人项目,掌握如何在 Mac OS 上安装和配置 PostgreSQL 都是关键技能。本文将从零开始,分步骤详解安装过程,并通过案例帮助读者快速上手。


安装前的准备:环境检查与工具选择

1. 系统要求

PostgreSQL 对 Mac 系统的要求较为宽松,但需确保 macOS 版本为 High Sierra(10.13)或更高。可以通过终端输入 sw_vers 命令查看系统版本:

sw_vers

输出示例:

ProductName:	Mac OS X
ProductVersion:	14.0
BuildVersion:	22A380

2. 选择安装方式

PostgreSQL 提供了多种安装途径,适合不同需求的开发者:

安装方式优点缺点
Homebrew简单快捷,依赖管理自动化需先安装 Homebrew
官方包安装器图形化界面,适合新手需手动下载安装包
源码编译灵活控制配置,适合高级用户过程复杂,耗时较长

第一步:使用 Homebrew 安装 PostgreSQL

1. 安装 Homebrew(若尚未安装)

Homebrew 是 macOS 的包管理工具,可简化软件安装流程。在终端执行以下命令:

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

安装完成后,验证 Homebrew 是否生效:

brew --version

2. 安装 PostgreSQL

通过 Homebrew 安装只需一条命令:

brew install postgresql

安装过程会自动下载依赖并配置环境变量。完成后,可通过以下命令验证安装:

psql --version

输出类似:

psql (PostgreSQL) 15.3

第二步:初始化数据库与配置服务

1. 初始化数据库集群

PostgreSQL 需要初始化一个数据目录(称为“集群”):

initdb /usr/local/var/postgres

若遇到权限问题,可添加 sudo

sudo initdb /usr/local/var/postgres

2. 启动 PostgreSQL 服务

使用以下命令启动服务并设置开机自启:

brew services start postgresql

验证服务状态:

brew services list

输出中应显示:

postgresql started <PID> <user> ...

第三步:连接数据库与基础操作

1. 连接默认数据库

PostgreSQL 默认创建了一个名为 postgres 的数据库。通过以下命令连接:

psql -d postgres

成功连接后,命令行会显示 postgres=# 提示符。

2. 创建新数据库与用户

psql 环境中,执行 SQL 语句创建数据库:

CREATE DATABASE my_database;

创建用户并授权:

CREATE USER my_user WITH ENCRYPTED PASSWORD 'my_password';
GRANT ALL PRIVILEGES ON DATABASE my_database TO my_user;

3. 简单查询示例

切换到新数据库并创建表:

\c my_database
CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER
);
INSERT INTO employees (name, age) VALUES ('Alice', 30), ('Bob', 25);
SELECT * FROM employees;

输出结果:

 id | name  | age 
----+-------+-----
 1 | Alice | 30
 2 | Bob   | 25

进阶配置:优化 PostgreSQL 性能与安全性

1. 修改默认配置文件

PostgreSQL 的配置文件 postgresql.conf 位于数据目录中(如 /usr/local/var/postgres/)。编辑配置项以提升性能:

shared_buffers = '1GB'
max_worker_processes = 8
max_parallel_workers_per_gather = 4

2. 设置密码认证

pg_hba.conf 文件中,将默认认证方式从 trust 改为 md5

local   all             all                                     md5
host    all             all             127.0.0.1/32            md5

常见问题与解决方案

问题 1:无法启动服务

现象:执行 brew services start postgresql 无响应。
解决方法

  1. 检查端口占用:
lsof -i :5432
  1. 若端口被占用,终止进程并重启服务:
kill -9 <PID>
brew services restart postgresql

问题 2:连接时提示权限错误

现象:连接数据库时显示 FATAL: password authentication failed
解决方法

  1. 确认密码是否正确。
  2. 检查 pg_hba.conf 中的认证方式是否匹配。
  3. 重置用户密码:
ALTER USER my_user WITH PASSWORD 'new_password';

实战案例:构建图书管理系统

1. 创建数据库与表

CREATE DATABASE library;
CREATE TABLE books (
    book_id SERIAL PRIMARY KEY,
    title TEXT NOT NULL,
    author TEXT,
    published_year INTEGER
);

2. 插入与查询数据

INSERT INTO books (title, author, published_year)
VALUES ('The Great Gatsby', 'F. Scott Fitzgerald', 1925);

SELECT * FROM books WHERE published_year > 1900;

3. 使用索引优化查询

CREATE INDEX idx_author ON books(author);

结论:掌握 PostgreSQL 的下一步

通过本文,读者已掌握了在 Mac OS 上安装、配置和使用 PostgreSQL 的完整流程。建议接下来尝试以下实践:

  1. 图形化工具:使用 pgAdminDBeaver 管理数据库。
  2. 版本控制:学习 pg_dumppg_restore 进行备份与恢复。
  3. 高级功能:探索 JSONB 类型、分区表等特性。

PostgreSQL 的学习曲线虽陡,但其强大的功能和灵活性将为开发者带来长远价值。动手实践,让数据管理成为你的核心技能!


本文通过循序渐进的步骤和案例,帮助读者在 Mac OS 上快速搭建 PostgreSQL 环境。无论是搭建个人项目还是参与团队开发,掌握这些技能将为你的技术栈增添重要一环。

最新发布