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将数据加载到buffer cache中操作方法

    PostgreSQL将数据加载到buffer cache中操作方法

    这篇文章主要介绍了PostgreSQL将数据加载到buffer cache中,我们可以使用pg_prewarm插件来将指定的表加载到OS Buffer或者pg shared buffer中,具体操作方法跟随小编一起看看吧
    2021-04-04
  • Postgresql中null值和空字符串举例详解

    Postgresql中null值和空字符串举例详解

    在使用 PostgreSql时,实际场景中会出现某个字段为空或空字符串,下面这篇文章主要给大家介绍了关于Postgresql中null值和空字符串的相关资料,需要的朋友可以参考下
    2024-02-02
  • 自定义函数实现单词排序并运用于PostgreSQL(实现代码)

    自定义函数实现单词排序并运用于PostgreSQL(实现代码)

    这篇文章主要介绍了自定义函数实现单词排序并运用于PostgreSQL,本文给大家分享实现代码,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • PostgreSQL通过mysql_fdw连通MySQL实战

    PostgreSQL通过mysql_fdw连通MySQL实战

    mysql_fdw就像是PostgreSQL和MySQL数据库之间的一座双向桥梁,本文就来详细的介绍一下PostgreSQL通过mysql_fdw连通MySQL实战,感兴趣的可以了解一下
    2026-03-03
  • PostgreSQL 实现给查询列表增加序号操作

    PostgreSQL 实现给查询列表增加序号操作

    这篇文章主要介绍了PostgreSQL 实现给查询列表增加序号操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 用一整天的时间安装postgreSQL  NTFS权限

    用一整天的时间安装postgreSQL NTFS权限

    看标题貌似一天的收获不小,但实际上是被一个问题搞的要死,啥问题?额,又是NTFS权限的问题。
    2009-08-08
  • PostgreSQL 实现列转行问题

    PostgreSQL 实现列转行问题

    这篇文章主要介绍了PostgreSQL 实现列转行问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL中进行数据导入和导出

    PostgreSQL中进行数据导入和导出

    在PostgreSQL中,数据的导入和导出是数据库管理中不可或缺的操作,通过使用COPYCOPYpg_dump和pg_dumpall等工具,您可以高效地管理您的数据,感兴趣的可以了解一下
    2026-05-05
  • PostgreSQL的generate_series()函数的用法说明

    PostgreSQL的generate_series()函数的用法说明

    这篇文章主要介绍了PostgreSQL的generate_series()函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL中insert_username的扩展使用

    PostgreSQL中insert_username的扩展使用

    insert_username 是 PostgreSQL 的一个实用扩展,用于自动记录数据行的创建者和最后修改者信息,本文就来详细的介绍一下insert_username扩展,感兴趣的可以了解一下
    2025-06-06

最新评论