PostgreSQL 安装与配置全指南(适用于 Windows、macOS 与主流 Linux 发行版)

PostgreSQL 是一个功能强大、开源、稳定的对象关系数据库系统,广泛用于后端开发、数据处理与分布式架构中。本指南将手把手教你如何在 Windows、macOS 以及主流 Linux 发行版 上安装 PostgreSQL,并附上安装验证命令基础配置方法


一、Windows 安装与配置 PostgreSQL

1. 安装步骤

  1. 打开官网下载页面:https://www.postgresql.org/download/windows/

  2. 点击 “Download the installer”,跳转至 EnterpriseDB。

  3. 下载适用于你的版本(例如 PostgreSQL 16)的安装程序。

  4. 双击运行,按提示操作:

    • 选择安装目录(默认即可)
    • 设置数据库超级用户密码(务必记住
    • 设置端口号(默认 5432)
    • 默认选择 UTF-8 编码和英文区域设置

2. 验证安装是否成功

打开命令提示符(CMD)或 PowerShell,输入以下命令:

"C:\Program Files\PostgreSQL\16\bin\psql" --version

如果显示如下类似输出,则表示安装成功:

psql (PostgreSQL) 16.1

可选:将 C:\Program Files\PostgreSQL\16\bin 添加到系统环境变量 PATH,便可直接使用 psql 命令。


二、macOS 安装与配置 PostgreSQL

方法一:使用 Homebrew 安装(推荐)

  1. 确保安装了 Homebrew:https://brew.sh/
  2. 执行以下命令安装 PostgreSQL:
brew update
brew install postgresql

验证安装是否成功:

psql --version

输出示例:

psql (PostgreSQL) 16.1

启动服务:

brew services start postgresql

方法二:使用 Postgres.app(图形界面安装)

  1. 前往:https://postgresapp.com/
  2. 下载并安装后,打开应用即可自动初始化服务。

验证安装是否成功:

/Applications/Postgres.app/Contents/Versions/latest/bin/psql --version

可将其加入 PATH:

echo 'export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin' >> ~/.zshrc
source ~/.zshrc

之后可使用:

psql --version

三、Linux 安装与配置 PostgreSQL(涵盖主流发行版)

以下为不同发行版的详细安装步骤,均包含启动服务及验证命令。


1. Ubuntu / Debian / Linux Mint / Kali 等

sudo apt update
sudo apt install postgresql postgresql-contrib
验证安装:
psql --version
启动 PostgreSQL:
sudo systemctl start postgresql
sudo systemctl enable postgresql

2. CentOS / Rocky / AlmaLinux / RHEL 系列

添加官方仓库并安装 PostgreSQL 16:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql16-server postgresql16
初始化数据库并启动服务:
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable --now postgresql-16
验证安装:
/usr/pgsql-16/bin/psql --version

可加入 PATH:

echo 'export PATH=$PATH:/usr/pgsql-16/bin' >> ~/.bashrc
source ~/.bashrc

3. Fedora

sudo dnf install -y postgresql-server postgresql-contrib
初始化数据库:
sudo postgresql-setup --initdb
启动服务:
sudo systemctl enable --now postgresql
验证安装:
psql --version

4. Arch Linux / Manjaro

sudo pacman -Syu postgresql
初始化数据库:
sudo -iu postgres
initdb --locale $LANG -D /var/lib/postgres/data
exit
启动服务:
sudo systemctl enable --now postgresql
验证安装:
psql --version

5. openSUSE / SUSE Linux Enterprise

sudo zypper refresh
sudo zypper install postgresql16-server
初始化数据库(如未自动执行):
sudo -u postgres initdb
启动服务:
sudo systemctl enable --now postgresql
验证安装:
psql --version

四、PostgreSQL 安装后通用配置

1. 登录数据库

切换至 postgres 用户:

sudo -i -u postgres
psql

退出:

\q

2. 创建用户和数据库

CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydb OWNER myuser;

五、远程连接配置(可选)

适用于服务器部署环境。

1. 修改 postgresql.conf

路径依据系统不同:

  • Ubuntu/Debian: /etc/postgresql/16/main/postgresql.conf
  • CentOS/Fedora/RHEL: /var/lib/pgsql/16/data/postgresql.conf

将:

# listen_addresses = 'localhost'

修改为:

listen_addresses = '*'

2. 修改 pg_hba.conf

添加以下内容以允许远程访问:

host    all             all             0.0.0.0/0               md5

3. 重启服务:

sudo systemctl restart postgresql

六、常见问题排查

问题解决方法
psql: command not found检查是否将 PostgreSQL bin 路径添加至 PATH
连接被拒绝确保 PostgreSQL 已启动并监听地址正确
密码验证失败检查 pg_hba.conf 中是否启用了 md5 认证模式

七、图形化管理工具推荐

  • pgAdmin(官方推荐 GUI 工具)
    https://www.pgadmin.org/download/

  • DBeaver(支持多数据库)
    https://dbeaver.io/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86573.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress博客文章SEO的优化技巧

在数字时代,博客不仅用于表达观点,也能提升品牌影响力并吸引潜在客户。许多服务器提供商(如 Hostease)支持 WordPress 一键安装功能,方便新手快速完成安装,专注于内容创作和 SEO 优化。然而,写出…

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…

雨季智慧交通:从车辆盲区到客流统计的算法全覆盖

雨季智慧交通中的视觉分析技术应用 一、背景:雨季交通的复杂挑战 雨季是城市交通管理的关键考验期。以济南为例,强对流天气伴随的短时强降水、雷雨大风及冰雹,不仅导致道路积水、能见度骤降,还加剧了大型车辆(如渣土…

安全生产管理是什么?安全生产管理系统都有哪些核心功能?

随着法律法规的日益严格和公众对安全意识的提升,企业面临的安全生产压力也越来越大。无论是大型企业还是中小型企业,安全生产管理不仅关系到企业的生存与发展,更直接关系到员工的生命安全和企业的社会形象。因此,理解并实施有效的…

【PyCharm必会基础】正确移除解释器及虚拟环境(以 Poetry 为例 )

#工作记录 【PyCharm使用基础】 当遇到虚拟环境难以修复的场景,我们需要删除当前解释器和虚拟环境然后再重新创建虚拟环境,以下是在PyCharm中正确移除的步骤。 一、进入解释器设置 在 PyCharm 界面右下角,点击Poetry (suna0),选…

day028-Shell自动化编程-判断进阶

文章目录 1. 特殊变量补充2. 变量扩展-变量子串2.1 获取变量字符的长度2.2 给变量设置默认值 3. 命令3.1 dirname3.2 basename3.3 cut 4. 条件测试命令:[]4.1 逻辑运算符4.2 文件测试4.3 案例:书写脚本-检查文件类型4.4 逻辑运算4.5 案例:书写…

oracle sql 语句 优化方法

1、表尽量使用别名,字段尽量使用别名.字段名,这样子,可以减少oracle数据库解析字段名。而且把 不需要的字段名剔除掉,只保留有用的字段名,不要一直使用 select *。 2、关联查询时,选择好主表 。oracle解析…

【Java】Ajax 技术详解

文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…

07 APP 自动化- appium+pytest+allure框架封装

文章目录 一、PO二、代码简单实现项目框架预览:base_page.pydir_config.pyget_data.pylogger.pystart_session.pyconfig.yamlkey_code.yamllaunch_page_loc.pylogin_page_loc.pylaunch_page.pylogin_page.pytest_login.pypytest.inirun.py APP 自动化代码总和 一、P…

用户体验升级:表单失焦调用接口验证,错误信息即时可视化

现代前端应用中,表单交互是用户体验的重要组成部分。而表单验证作为其中的核心环节,不仅需要前端的即时反馈,还需要与后端接口联动进行数据合法性校验。本文将详细介绍如何在Vue3中实现表单输入与接口验证的无缝联动,并优雅地展示…

Vue 插槽(Slot)用法详解

插槽(Slot)是Vue中一种强大的内容分发机制,它允许你在组件中定义可替换的内容区域,为组件提供了更高的灵活性和可复用性。本文将全面介绍Vue插槽的各种用法。 1. 基本插槽 基本插槽是最简单的插槽形式,它允许父组件向子组件插入内容。 子组…

C++ 标准模板库(STL)详解文档

C 标准模板库(STL)详解文档 1 前言2 常用容器2.1 内容总览2.2 向量 vector2.2.1 概述2.2.2 常用方法2.2.3 适用场景2.2.4 注意事项 2.3 栈 stack2.3.1 概述2.3.2 常用方法2.3.3 注意事项 2.4 队列 queue2.4.1 概述2.4.2 常用方法2.4.3 注意事项 2.5 优先…

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…

Redis(02)Win系统如何将Redis配置为开机自启的服务

一、引言 Redis 是一款高性能的键值对存储数据库,在众多项目中被广泛应用。在 Windows 环境下,为了让 Redis 能更稳定、便捷地运行,将其设置为系统服务并实现自动启动是很有必要的。这样一来,系统开机时 Redis 可自动加载&#xf…

apex新版貌似移除了amp从源码安装方式装的话会在from apex import amp时报错

问题: 安装完apex结果 from apex import amp会报错 解决方法: # apex git clone https://github.com/NVIDIA/apex cd apex # https://github.com/modelscope/ms-swift/issues/4176 git checkout e13873debc4699d39c6861074b9a3b2a02327f92 pip insta…

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…

【AI学习】三、AI算法中的向量

在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…

leetcode题解450:删除BST中的结点!调整二叉树的结构最难!

一、题目内容 题目要求删除二叉搜索树(BST)中值为 key 的节点,并保证删除后二叉搜索树的性质不变。返回删除节点后的二叉搜索树的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如…

让 Kubernetes (K8s) 集群 使用 GPU

要让 Kubernetes (K8s) 集群 使用 GPU,并且节点是 KVM 虚拟化 出来的,需要确保以下几点: KVM 虚拟机透传 GPU(PCIe Passthrough) 宿主机和 K8s 节点正确安装 NVIDIA 驱动 K8s 集群安装 nvidia-device-plugin Pod 配…