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

article/2025/9/7 0:40:10

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.hkcw.cn/article/pmHklMcMiO.shtml

相关文章

游戏盾在非游戏行业的应用实践与价值分析

游戏盾最初是为应对游戏行业的高并发、复杂协议攻击(如DDoS、CC攻击)而设计的网络安全解决方案,但随着技术演进,其分布式架构、智能调度和协议解析能力逐渐被扩展至其他高流量、高安全需求的非游戏领域。本文将结合实际案例&#…

R语言基础| 数据基本管理与操作

上次教程我们已经和大家一起完成了创建数据集的学习&#xff0c;在本次内容里我们将进一步对数据进行管理与操作。 示例展示&#xff08;本节均用它学习&#xff09; leadership <- data.frame(managerc(1,2,3,4,5),datec("10/24/08","10/28/08",&quo…

腾讯云国际站性能调优

全球化业务扩张中&#xff0c;云端性能直接决定用户体验与商业成败。腾讯云国际站通过资源适配、网络优化与存储革新&#xff0c;为企业提供全链路调优方案。 ​​资源精准适配​​ 实例选型需与业务场景深度耦合&#xff0c;计算优化型实例加速AI训练效率3倍&#xff0c;内存…

深度学习核心网络架构详解(续):从 Transformers 到生成模型

在上一篇文章中&#xff0c;我们详细介绍了卷积神经网络 (CNN)、循环神经网络 (RNN) 及其变体 LSTM 和 GRU。本文将继续探讨其他必须掌握的深度学习网络架构&#xff0c;包括 Transformers、生成对抗网络 (GAN)、自编码器 (Autoencoder) 以及强化学习基础。我们将深入讲解这些技…

HTML5 Canvas 星空战机游戏开发全解析

HTML5 Canvas 星空战机游戏开发全解析 一、游戏介绍 这是一款基于HTML5 Canvas开发的2D射击游戏&#xff0c;具有以下特色功能&#xff1a; &#x1f680; 纯代码绘制的星空动态背景✈️ 三种不同特性的敌人类型&#x1f3ae; 键盘控制的玩家战机&#x1f4ca; 完整的分数统…

oracle19C新特性自动索引优化测试

创建用户&#xff0c;表空间 alter session set containerpdbprod5;Session altered.SQL> create tablespace test_data datafile /u01/app/oracle/oradata/PRODCDB/PDBPROD5/test_data01.dbf size 100m autoextend on;Tablespace created.SQL> create tablespace test…

64、【OS】【Nuttx】任务休眠与唤醒:clock_nanosleep

背景 之前的 blog 63、【OS】【Nuttx】任务休眠与唤醒&#xff1a;sleep 分析了任务休眠中的 sleep 函数&#xff0c;下面继续来分析下 sleep 函数中的核心功能 clock_nanosleep clock_nanosleep usleep 上篇 blog 分析了 sleep 函数&#xff0c;其核心功能封装到了 clock_…

重工业专属:Profibus转Profinet网关在矿石粉料输送线中的定制化方案

在现代制造业中&#xff0c;生产线的智能化、自动化水平已成为企业竞争力的关键因素之一。特别是对于那些依赖精密机械操作的行业&#xff0c;如何确保生产过程中的稳定性与高效性&#xff0c;是每个企业都面临的挑战。今天&#xff0c;我们就来聊聊一个创新解决方案—开疆智能…

攻防世界-BadProgrammer

进入环境 查看源代码进行分析 把源代码复制到Visual里面进行分析 发现静态文件存放在/static/目录下 观察请求response header发现是nginx服务器加express框架 利用nginx配置错误&#xff0c;可以列目录 得到app.js源码 查看package.json文件 发现express-fileupload版本为1.…

vue3 导出excel

需求&#xff1a;导出自带格式的excel表格 1.自定义二维数组格式 导出 全部代码&#xff1a; <el-button click"exportExcel">导出</el-button> const exportExcel () > {const data [[商品, 单价, 数量, 总价],[A, 100, 1.55, { t: n, f: B2*C2…

微深节能 码头装卸船机定位与控制系统 格雷母线

微深节能码头装卸船机定位与控制系统&#xff1a;格雷母线技术赋能港口作业智能化升级 在现代化港口散货装卸作业中&#xff0c;装卸船机是连接船舶与陆域运输的核心枢纽设备。传统装卸船机依赖人工操作&#xff0c;存在定位偏差大、动态协同难、安全风险高等痛点。微深节能基于…

Vue-列表过滤排序

列表过滤 基础环境 数据 persons: [{ id: "001", name: "刘德华", age: 19 },{ id: "002", name: "马德华", age: 20 },{ id: "003", name: "李小龙", age: 21 },{ id: "004", name: "释小龙&q…

车载摄像头选型相关

From : https://www.zhihu.com/people/aili-light/posts 1 L2-L4自动驾驶视觉方案推荐 (一) https://zhuanlan.zhihu.com/p/475817226 (二) https://zhuanlan.zhihu.com/p/475832413 2 CMOS图像传感器的参数和评价标准 https://zhuanlan.zhihu.com/p/480707847 EMVA(Eur…

OPC Client第6讲(wxwidgets):Logger.h日志记录文件(单例模式);登录后的主界面

接上一讲三、2、2>4》&#xff0c;创建logger.h和helper_t.h里的gettime函数 即解决下图的报红 同时&#xff0c;接上一讲二、3、点击“确认”按钮后&#xff0c;进入MainFrame.h对应的下述界面&#xff0c;此讲下图进行实现 一、创建Logger.h&#xff1a;日志记录文件&…

mkdir: cannot create directory ‘gitlab-stu’: No space left on device

Linux中创建目录时报错“mkdir: cannot create directory ‘gitlab-stu’: No space left on device”&#xff0c;磁盘空间不足。 使用df命令查看&#xff0c;发现 / 下面use%占满了&#xff1a; 查看inode使用情况&#xff1a; 可以看到docker的数据大部分存放在/var/lib/do…

st倍增(st表)

ST表不仅能处理区间最值问题&#xff0c;凡是符合结合律且可重复贡献的信息查询都可以使用ST表高效进行。可重复贡献的意义在于&#xff0c;可以对两个交集不为空的区间进行信息合并&#xff0c;显然最大值、最小值、最大公约数、最小公倍数、按位或、按位与都符合这个条件。 在…

Minimax-speech-hd

paper 文章目录 abstractMethod abstract speech_encoder 提取音色信息&#xff0c;不需要prompt text&#xff08;更加适用于跨语言任务&#xff0c;解耦了prompt 文本和prompt style/timbre)Flow-VAE 提升合成音质&#xff1b; Method speaker encoder: 相比于其他预训练…

python高级3——元类与动态类创建

元类 1、元类(Metaclass)的概念 元类是Python中一个高级概念&#xff0c;本质上是**“类的类”**&#xff0c;用于控制创建类的过程。元类是创建类的模板在Python中&#xff1a; 类定义了实例的行为元类定义了类的行为 2、python中的默认元类 在Python中&#xff0c;type是…

SpringBoot整合RocketMQ--实例

原文网址&#xff1a;SpringBoot整合RocketMQ--实例-CSDN博客 简介 本文介绍SpringBoot整合RocketMQ的方法。 spring-boot-starter-parent版本&#xff1a;2.4.13RocketMQ版本&#xff1a;4.9.4。&#xff08;写这篇文章时&#xff0c;5.X版本的Java客户端还没完善&#xff…