Ken的杂谈
  • Ken的杂谈 (current)
  • 关于
  • 杂谈
    Java Spring Spring Boot Spring Cloud MyBatis C# .NET Core .NET ASP.NET Core ASP.NET ClassLibrary Mono 数据库 MySQL SQL Server 网络 缓存 Web Linux CentOS Ubuntu macOS Windows openEuler Nginx ServiceStack JS/JQ 正则 工具 IDE Grafana Exceptions CI/CD Solution 微服务 Arch Docker 杂谈
  • 系列
    Java 快速入门系列教程 Spring Boot 入门教程 Spring Boot 2.x 入门教程 Spring Cloud 入门教程 .NET Core 快速入门教程 ASP.NET Core 2.1 入门教程 CentOS 7 快速上手教程 Ubuntu快速上手入门教程 Hyper-V基础教程 Docker入门教程
  • GitHub

在macOS上安装&配置PostgreSQL

数据库 macOS @ 2023-02-05 01:26:36 · 阅读:(15162)

一、前言

1、本文主要内容

  • PostgreSQL 安装(Homebrew&dmg安装包)
  • PostgreSQL 基础配置与常用命令
  • PostgreSQL 远程访问配置
  • PostgreSQL 基础管理

2、本文环境信息

工具 本文环境 适用环境
macOS macOS (Ventura) 13.2 macOS 10.14+
PostgreSQL PostgreSQL 15 PostgreSQL 12+

3、前置依赖

安装Oh My Zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

二、PostgreSQL安装

1、安装方式说明

Homebrew以及dmg安装包安装都可以,不过Homebrew跟dmg包图形化安装还是有些区别,根据自己习惯任选其一即可,不过为了方便理解后续的操作,还是简单介绍下两种安装方式的区别

PostgreSQL Homebrew安装 dmg安装包安装
安装目录 /opt/homebrew/Cellar/postgresql@15 /Library/PostgreSQL/15
数据目录 默认为:/opt/homebrew/var/postgresql@15 默认为:/Library/PostgreSQL/15/data
用户要求 无 需要创建postgres用户
默认用户 与执行安装的用户同名 postgres
psql工具/命令行 需要使用-d参数指定数据库进入 需要使用-U参数指定用户进入,且需要输入密码

不同Homebrew版本产生的安装以及数据目录可能会有差异~

2、Homebrew安装

2.1、安装Homebrew

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

2.2、查找PostgreSQL安装包

# 查找postgresql可用版本
brew search postgresql

# 输出示例
==> Formulae
postgresql@10             postgresql@12             postgresql@14             postgresql@9.4            qt-postgresql
postgresql@11             postgresql@13             postgresql@15             postgresql@9.5            postgrest

2.3、安装PostgreSQL

# 安装指定版本(推荐)
brew install postgresql@15

# 安装默认版本
brew install postgresql

2.4、配置并启动PostgreSQL服务

brew services start postgresql@15

2.5、添加环境变量

echo 'export PATH="/opt/homebrew/opt/postgresql@15/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

3、dmg安装包安装

3.1、创建用户
使用dmg安装包安装时,如果没有postgres账户,可能会出现安装失败的情况
使用dscl命令创建

# 创建用户并指定Shell
sudo dscl . -create /Users/postgres UserShell /bin/bash

# 设置用户ID(需要唯一)、显示名称
sudo dscl . -create /Users/postgres UniqueID "5001"
sudo dscl . -create /Users/postgres RealName "postgres"

# 将用户设置为管理员
sudo dscl . -create /Users/postgres PrimaryGroupID 80

# 修改密码
sudo dscl . -passwd /Users/postgres 1024

如果你习惯使用图形化界面操作,可以通过菜单:系统设置->用户与群租->添加账户,添加postgres账户
image.png

3.2、下载PostgreSQL
访问 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 下载对应的版本即可
image.png
3.3、开始安装
image.png
3.4、选择安装位置及内容
image.png
image.png
如果有通用的数据管理工具,这里pgAdmin根据自己情况选择即可
后续根据安装引导,选择数据目录、设置密码、设置端口等等即可
image.png
image.png
image.png
3.5、添加环境变量

echo 'export PATH="/Library/PostgreSQL/15/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

三、PostgreSQL基础使用

PostgreSQL提供了在命令行下运行的数据库连接工具psql,我们可以通过psql命令行执行内部命令管理数据库,也可以执行SQL,做用户管理增删改查等操作

# 指定用户连接PostgreSQL
psql -U postgres

# 指定数据库连接PostgreSQL
psql -d postgres

# 参数参考
psql -h 127.0.0.1 -p 5432 -U ken -d postgres

1、常用psql命令

# 查看所有用户
\du

# 查看所有数据库
\l

# 切换当前数据库
\c {dbname}

# 查看当前库下所有的表
\dt

# 查看指定表
\d {tablename}

# 查看数据目录
SHOW data_directory;

# 退出psql
\q

2、常用SQL命令

# 创建数据库
CREATE DATABASE test;

# 创建表(记得使用\c命令切换数据库)
CREATE TABLE t1(id int,body varchar(100));

# 创建用户
CREATE USER test WITH PASSWORD 'Test#1357';

# 修改密码
ALTER USER test WITH PASSWORD 'Test#2468';

# 指定用户添加指定角色
ALTER USER test createdb;

# 赋予指定账户指定数据库所有权限
GRANT ALL PRIVILEGES ON DATABASE test TO test;

# 移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE test TO test;

四、PostgreSQL远程访问

1、账户与数据目录

PostgreSQL程序文件以及数据文件默认属于postgres账户/brew安装时的账户,使用其他账户无操作权限,需要切换到对应账户,才能执行修改配置的相关操作

# 切换账户(图形化界面安装需要此步骤)
su postgres

# 进入PostgreSQL数据目录(brew)
cd /opt/homebrew/var/postgresql@15/

# 进入PostgreSQL数据目录(dmg)
cd /Library/PostgreSQL/15/data/

2、修改监听地址

PostgreSQL默认监听的localhost,可以通过修改postgresql.conf,放开监听限制

# 修改postgresql.conf
vi postgresql.conf 

# 修改监听地址
listen_addresses= '*'

# 查看配置情况
cat postgresql.conf | grep "listen_addresses"

2、放开客户端限制

修改pg_hba.conf,开放给所有客户端访问

# 修改pg_hba.conf  
vi pg_hba.conf  

# 追加配置(md5指的加密方式,也可以选择scram-sha-256等)
host  all  all 0.0.0.0/0 md5

# 查看配置情况
cat  pg_hba.conf | grep "host"

3、重启PostgreSQL服务

# 重启服务(brew安装)
brew services restart postgresql@15

# 重启服务(dmg安装,通过-D指定数据目录)
pg_ctl restart -D /Library/PostgreSQL/15/data

五、备注

1、相关阅读

https://wiki.postgresql.org/wiki/Homebrew
https://tomcam.github.io/postgres/


Ken的杂谈

本文由 ken.io 创作,采用CC BY 3.0 CN协议 进行许可。 可自由转载、引用、甚至修改,但需署名作者且注明出处。

数据库 macOS

随笔目录


    © Copyright 2012-2025 Ken的杂谈

    豫ICP备10025012号

    ASP.NET Core(6.0) on Linux