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
无响应。
解决方法:
- 检查端口占用:
lsof -i :5432
- 若端口被占用,终止进程并重启服务:
kill -9 <PID>
brew services restart postgresql
问题 2:连接时提示权限错误
现象:连接数据库时显示 FATAL: password authentication failed
。
解决方法:
- 确认密码是否正确。
- 检查
pg_hba.conf
中的认证方式是否匹配。 - 重置用户密码:
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 的完整流程。建议接下来尝试以下实践:
- 图形化工具:使用 pgAdmin 或 DBeaver 管理数据库。
- 版本控制:学习
pg_dump
和pg_restore
进行备份与恢复。 - 高级功能:探索 JSONB 类型、分区表等特性。
PostgreSQL 的学习曲线虽陡,但其强大的功能和灵活性将为开发者带来长远价值。动手实践,让数据管理成为你的核心技能!
本文通过循序渐进的步骤和案例,帮助读者在 Mac OS 上快速搭建 PostgreSQL 环境。无论是搭建个人项目还是参与团队开发,掌握这些技能将为你的技术栈增添重要一环。