PostgreSQL数据库部署linux服务器完整教程

 更新时间:2026年05月18日 10:11:02   作者:AI驻场工程师  
本文主要述了在Linux服务器上部署PostgreSQL数据库的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

PostgreSQL数据库部署linux服务器流程

一、配置需求

1. 系统要求

一台装了 Docker 的服务器

该服务器能与本地win电脑ping通

操作系统:Ubuntu 22.04(推荐)

2. 资源需求

PostgreSQL 15.4 镜像(Docker官方仓库)

国内的能用来拉取镜像的docker镜像源

  1. 预备配置参数

参数

端口

5432

用户名

postgres

密码

postgres

默认数据库

postgres

二、大概流程简述

拉取官方 PostgreSQL 镜像

创建并启动容器

配置数据持久化存储

设置数据库用户凭证

验证数据库连接

三、验证环节

1. 验证 Docker 环境

# 检查 Docker 是否安装
sudo docker --version

(如图所示结果)

显示类似 Docker version 24.03.1, build xxxx 就说明已安装。

# 检查 Docker 服务是否运行
sudo systemctl status docker

(如图所示结果)

看到 active (running) 就正常。

退出查看:ctrl+c

2. 验证镜像源是否能进行拉取镜像

# 拉取测试镜像
sudo docker pull hello-world

(失败结果如图所示)

(成功结果如图所示)

能正常运行就说明镜像源没问题。

如果拉取失败,配置国内 Docker 镜像加速器

创建文件

sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json

配置加速镜 清空文件内容,写入以下 JSON(注意格式)

开始编写按:i

{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.anyhub.us.kg"
],
"dns": ["223.5.5.5", "114.114.114.114"]
}

退出编写+保存+退出:esc+:wq

应用配置

sudo systemctl daemon-reload

重启docker

sudo systemctl restart docker

配置成功后,重新执行上面的拉取命令测试即可。

四、具体流程

1. 拉取 PostgreSQL 镜像

# 拉取官方 PostgreSQL 15.4 镜像
sudo docker pull postgres:15.4

(如图所示结果)拉取时间实测需要12分钟

# 验证镜像是否下载成功
sudo docker images postgres:15.4

(成功结果如图所示)

2. 创建数据持久化目录

# 创建存储目录
sudo mkdir -p /opt/postgresql/data
# 设置权限(必须)
sudo chown -R 999:999 /opt/postgresql/data

3. 创建并启动 PostgreSQL 容器

# 一键创建并启动容器
sudo docker run -d \
--name postgres_db \
--restart unless-stopped \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_DB=postgres \
-p 5432:5432 \
-v /opt/postgresql/data:/var/lib/postgresql/data \
postgres:15.4

(成功结果如图所示)

# 查看容器是否启动成功
sudo docker ps | grep postgres_db

(成功结果如图所示)

看到输出就说明启动成功了。

4. 验证数据库连接

# 进入容器内部
sudo docker exec -it postgres_db psql -U postgres

(成功结果如图所示)

# 进入后执行以下命令验证

#版本显示
SELECT version();

(成功结果如图所示)

退出查看:ctrl+c

数据库列表

\l

(成功结果如图所示)

退出查看:ctrl+c

退出数据库

\q

5. 配置远程访问

如果需要从容器外连接数据库:

# 修改配置允许远程连接
sudo docker exec -it postgres_db bash -c "echo \"host all all 0.0.0.0/0 md5\" >> /var/lib/postgresql/data/pg_hba.conf"
# 重启容器生效
sudo docker restart postgres_db

五、常用管理命令

# 启动容器
sudo docker start postgres_db
# 停止容器
sudo docker stop postgres_db
# 查看容器日志
sudo docker logs -f postgres_db
# 进入容器 bash
sudo docker exec -it postgres_db bash

六、验证连接

1. 服务器本地验证

# 进入容器内部连接数据库
sudo docker exec -it postgres_db psql -U postgres

(成功结果如图所示)

2. Windows 本地连接

使用 Python 测试连接

进入虚拟环境,安装 psycopg2 库:

pip install psycopg2-binary

(成功结果如图所示)

创建测试脚本:

#text01.py
import psycopg2
try:
conn = psycopg2.connect(
host="192.168.1.128",
port="5432",
database="postgres",
user="postgres",
password="postgres"
)
print("连接成功!")
cursor = conn.cursor()
cursor.execute("SELECT version();")
print("PostgreSQL 版本:", cursor.fetchone())
cursor.close()
conn.close()
except Exception as e:
print("连接失败:", e)

⚠️ 注意:请将代码中的 192.168.1.128 替换为您自己的服务器 IP 地址。

(成功结果如图所示)

运行脚本:

python test01.py

(成功结果如图所示)

看到"连接成功!"就说明连接正常。

到此这篇关于PostgreSQL数据库部署linux服务器流程的文章就介绍到这了,更多相关PostgreSQL部署linux服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Postgresql REGEXP开头的正则函数用法图文详解

    Postgresql REGEXP开头的正则函数用法图文详解

    正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串,下面这篇文章主要给大家介绍了关于Postgresql REGEXP开头的正则函数用法的相关资料,需要的朋友可以参考下
    2024-02-02
  • PostgreSQL如何按照某一字段去重,并显示其他字段信息

    PostgreSQL如何按照某一字段去重,并显示其他字段信息

    这篇文章主要介绍了PostgreSQL如何按照某一字段去重,并显示其他字段信息问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 常用 PostgreSQL 预防数据丢失解决方案

    常用 PostgreSQL 预防数据丢失解决方案

    这篇文章主要介绍了常用 PostgreSQL 预防数据丢失方案,本篇主要介绍关于 DDL 和 DML 操作,如何预防数据丢失的方案,需要的朋友可以参考下
    2022-01-01
  • pgpool复制和负载均衡操作

    pgpool复制和负载均衡操作

    这篇文章主要介绍了pgpool复制和负载均衡操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL锁问题排查与处理方法详细指南

    PostgreSQL锁问题排查与处理方法详细指南

    锁就是一种控制资源访问的机制,在数据库中,锁可以防止多个事务同时修改同一份数据,从而保证数据的一致性和完整性,这篇文章主要介绍了PostgreSQL锁问题排查与处理方法的相关资料,需要的朋友可以参考下
    2025-09-09
  • pgsql 实现用户自定义表结构信息获取

    pgsql 实现用户自定义表结构信息获取

    这篇文章主要介绍了pgsql 实现用户自定义表结构信息获取,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 使用docker compose启动postgresql的示例代码

    使用docker compose启动postgresql的示例代码

    要在启动 PostgreSQL 容器时执行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目录,这个目录下的 SQL 文件会在容器启动时被自动执行,下面是如何修改 Docker Compose 配置文件,以便在启动时执行初始化 SQL 脚本,需要的朋友可以参考下
    2024-10-10
  • PostgreSQL设置时区、时间/日期函数汇总大全

    PostgreSQL设置时区、时间/日期函数汇总大全

    PostgreSQL是一款简介而又性能强大的数据库应用程序,其在日期时间数据方面所支持的功能也都非常给力,这篇文章主要给大家介绍了关于PostgreSQL设置时区、时间/日期函数的相关资料,需要的朋友可以参考下
    2023-09-09
  • 浅谈PostgreSQL中大小写不敏感问题

    浅谈PostgreSQL中大小写不敏感问题

    这篇文章主要介绍了浅谈PostgreSQL中大小写不敏感问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL存储过程用法实战详解

    PostgreSQL存储过程用法实战详解

    这篇文章主要介绍了PostgreSQL存储过程用法,结合具体实例详细分析了PostgreSQL数据库存储过程的定义、使用方法及相关操作注意事项,并附带一个完整实例供大家参考,需要的朋友可以参考下
    2018-08-08

最新评论