当前位置: 首页 > article >正文

Ubuntu 22.04 上安装 PostgreSQL(使用官方 APT 源)

Ubuntu 22.04 上安装 PostgreSQL(使用官方 APT 源)

步骤 1:更新系统

sudo apt update
sudo apt upgrade -y

步骤 2:添加 PostgreSQL 官方仓库

# 安装仓库管理工具
sudo apt install wget ca-certificates gnupg lsb-release -y# 导入 GPG 密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql.gpg# 添加仓库
echo "deb [signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

步骤 3:安装 PostgreSQL

sudo apt update
sudo apt install postgresql postgresql-contrib -y
  • postgresql 是主程序。
  • postgresql-contrib 包括一些有用的扩展模块(如 uuid-ossppg_stat_statements 等)。

TIPS: 这里网络可能会比较卡,需要用到代理服务。

export http_proxy="http://your-proxy-host:port"
export https_proxy="http://your-proxy-host:port"

步骤 4:检查服务状态

sudo systemctl status postgresql

如果未启动,可以执行:

sudo systemctl start postgresql
sudo systemctl enable postgresql

配置远程访问PostgreSQL,以及设置管理员密码

默认情况下,postgres 用户在数据库中并没有设置密码,也无法用密码直接登录。


🔐 默认用户密码:

  • Ubuntu 系统中会创建一个同名的 Linux 用户 postgres
  • 你可以通过切换到这个 Linux 用户来访问 PostgreSQL:
sudo -i -u postgres
psql

这是一种基于 Unix socket 和系统身份验证 的方式,不需要密码。

  1. 切换到 postgres 用户:

    sudo -i -u postgres
    
  2. 进入 PostgreSQL:

    psql
    
  3. 在 PostgreSQL 手动指定密码:

    ALTER USER postgres WITH PASSWORD 'your_strong_password';
    
  4. 退出:

    \q
    

🌐 配置远程连接,用密码登录

你还需要修改两个文件(一般位于 /etc/postgresql/14/main/,版本号视实际情况而定):

1. 修改 postgresql.conf

sudo nano /etc/postgresql/14/main/postgresql.conf

找到并修改:

listen_addresses = '*'

2. 修改 pg_hba.conf

sudo nano /etc/postgresql/14/main/pg_hba.conf

把:

local   all             postgres                                peer

改为:

local   all             postgres                                md5

并添加远程访问规则,例如:

host    all             all             0.0.0.0/0               md5

注意:可根据实际网段限制 IP 范围,比如 192.168.1.0/24

3. 重启 PostgreSQL 服务

sudo systemctl restart postgresql

✅ 检查密码登录

你可以用 psql 或远程客户端(如 DBeaver、pgAdmin、JDBC)来测试:

psql -h 127.0.0.1 -U postgres -W

可能遇到的问题(我自己遇到的)

1. navicat 链接 postgresql,报错

这个错误:

ERROR: column "datlastsysoid" does not exist

是由于 Navicat(或其他某些客户端)使用了旧版本的 PostgreSQL 系统元数据结构,而 PostgreSQL 14+ 已经移除了 datlastsysoid 字段,导致访问系统视图时报错。

升级Navicat版本,或者使用其他的链接工具即可。

在这里插入图片描述

http://www.lryc.cn/news/2399067.html

相关文章:

  • Linux随记(十八)
  • Windows MongoDB C++驱动安装
  • MS1023/MS1224——10MHz 到 80MHz、10:1 LVDS 并串转换器(串化器)/串并转换器(解串器)
  • ESOP股权管理平台完整解决方案
  • 线性调频波形测距测速信号处理——全代码+注释
  • WPS word 已有多级列表序号
  • Vue 3 源码层核心原理剖析(完整详解版)
  • 数据库操作-MySQL-4(JDBC编程)
  • Linux打开.img镜像文件
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(5)
  • 【科研绘图系列】R语言绘制论文组合图形(multiple plots)
  • springMVC-9数据格式化
  • Kafka 和Redis 在系统架构中的位置
  • 【Spring AI】如何实现文生图功能
  • 【ISAQB大纲解读】Kafka消息总线被视为“自下而上设计”?
  • ISBN书号查询接口如何用PHP实现调用?
  • 什么是 Docker Compose 的网络(network),为什么你需要它,它是怎么工作的
  • 嵌入式Linux 期末复习指南(上)
  • SpringBoot3.2新特性:JdbcClient
  • Dify:启动 Web 服务的详细指南
  • 3.1 HarmonyOS NEXT分布式数据管理实战:跨设备同步、端云协同与安全保护
  • Aop + 注解实现数据字典类型转换 EasyExcel导出
  • Python 元组方法全集详解
  • Selenium 中 JavaScript 点击操作的原理及应用
  • Xilinx超过256m bit flash固件跳转失败问题
  • SpringCloud 分布式锁Redisson锁的重入性与看门狗机制 高并发 可重入
  • 02 APP 自动化-Appium 运行原理详解
  • 由docker引入架构简单展开说说技术栈学习之路
  • linux 1.0.5
  • 强化学习的前世今生(五)— SAC算法