Linux\Docker部署Postgres

PostgrteSQL是什么

PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES, 版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)

为什么用PostgreSQL

  1. 用户多,许多开源项目采用PostgreSQl
    https://survey.stackoverflow.co/2024
  2. PostgreSQl复杂查询性能更好,Mysql单查性能更好
  3. PostgreSQl支持的数据类型更丰富,如数组、JSON、XML,还可以自定义类型;Mysql 5.7开始支持JSON但性能较差
  4. PostgreSQl并发控制和事务隔离功能更多,支持序列化的事务隔离级别,可以保证高并发下的数据一致性
  5. 开源、免费商用,很多国产数据库基于PostgreSQl分发
  6. 使用SQL(Structured Query Language,结构化查询语言)

安装Postgres

  • 本例采用Debian Linux或Docker安装PostgreSQL,不装本机主要是为了隔离环境,如果使用Win,建议使用虚拟机、WSL、Docker
    官网:https://www.postgresql.org/download/

1、 Debian Linux安装Postgres

导入存储库签名

sudo apt install curl ca-certificates

sudo install -d /usr/share/postgresql-common/pgdg

sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc

创建存储库配置文件

sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

更新软件包列表

sudo apt update

安装Postgres

指定版本sudo apt -y install postgresql-16

sudo apt -y install postgresql

卸载Postgres

# 卸载软件包
sudo apt remove --purge postgresql\*
# 清理数据(可选,如果你想保留数据)
sudo rm -rf /var/lib/postgresql
清理 用户和用户组
sudo userdel postgres

sudo groupdel postgres
# 清理缓存
sudo apt autoremove

sudo apt clean

2、 Docker部署Postgres

  1. 直接运命令部署,需要提前创建自定义网络,自定义网络可以通过容器名称通信

docker network ls查看已有网络,使用默认bridge只能通过ip通信,这里加入了自定义网络,自定义网络可以自动解析容器名

创建自定义网络docker network create pub-network

手动连接网络docker network connect pub-network container_name_or_id

删除网络docker network rm network_name_or_idid

docker run -it -d \
--name postgres \
--network pub-network \
--restart always \
-e POSTGRES_PASSWORD='root123456' \
-v /var/lib/postgresql/data:/var/lib/postgresql/data \
-v /var/log/postgresql:/var/lib/postgresql/log \
-p 5432:5432 \
postgres

-v 宿主机路径:容器路径

默认账号名:postgres

部署pgAdmin

修改你的邮件和密码

docker run -d \
--name pgAdmin \
--network pub-network \
--restart always \
-p 5050:80 \
-e PGADMIN_DEFAULT_EMAIL=user@domain.com \
-e PGADMIN_DEFAULT_PASSWORD=root123456 \
dpage/pgadmin4

访问:http://localhost:5050/

账号密码:指定的user@domain.com/root123456

  1. 使用docker-compose.yml部署
services:
  postgres:
    image: postgres
    container_name: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: 'root123456'
    volumes:
      - /var/lib/postgresql/data:/var/lib/postgresql/data
      - /var/log/postgresql:/var/lib/postgresql/log
    ports:
      - 5432:5432
    networks:
      - pub-network

  pgadmin:
    image: dpage/pgadmin4
    container_name: pgAdmin
    restart: always
    ports:
      - 5050:80
    environment:
      PGADMIN_DEFAULT_EMAIL: user@domain.com
      PGADMIN_DEFAULT_PASSWORD: root123456
    networks:
      - pub-network

networks:
  pub-network:
    name: pub-network

部署

docker-compose -f docker-compose.yml up

删除postgres

docker stop postgres

docker rm postgres

连接postgres

使用pgAdmin连接postgres

在这里插入图片描述

使用Navicat连接postgres

在这里插入图片描述

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cci497

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值