postgres安装再centos7上操作

314 阅读1分钟

离线安装包

image-20220429090034791.png

下载地址

https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/repoview/postgresql96-server.html
https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/repoview/postgresql96-libs.html
https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/repoview/postgresql96-contrib.html
https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/repoview/postgresql96.html

安装postgres

cd pgsql9.6
rpm -ivh postgresql96-*.rpm

[root@localhost pgsql9.6]# rpm -ivh postgresql96-*.rpm
警告:postgresql96-9.6.20-2PGDG.rhel7.x86_64.rpm:V4 DSA/SHA1 Signature, 密钥 ID 442df0f8: NOK                     EY
准备中...                          ################################# [100%]
正在升级/安装...
   1:postgresql96-libs-9.6.20-2PGDG.rh################################# [ 25%]
   2:postgresql96-9.6.20-2PGDG.rhel7  ################################# [ 50%]
   3:postgresql96-server-9.6.20-2PGDG.################################# [ 75%]
   4:postgresql96-contrib-9.6.20-2PGDG################################# [100%]
[root@localhost pgsql9.6]# find / -name postgresql96-setup

pgsql安装程序会在 /var 和 /usr 下创建一下文件夹

/var/lib/pgsql:用于存放pgsql数据库默认的数据文件夹 /usr/pgsql-9.6:用于存放pgsql数据库的依赖库、命令以及文档目录等信息 /var/lib/pgsql/9.6/data:用户存放pgsql默认配置的pg_hba.conf,postgresql.conf的配置文件

3. 初始化数据库

/usr/pgsql-9.6/bin/postgresql-9.6-setup initdb
# 4)启动数据库
systemctl enable postgresql-9.6 && systemctl restart postgresql-9.6
# 5)PostgreSQL数据库配置
# 修改密码
su - postgres # 进入,输入 `psql` 和 `ALTER USER postgres WITH PASSWORD 'root123';`
# 开启远程访问
vi /var/lib/pgsql/9.6/data/postgresql.conf # listen_addresses = 'localhost' 改为 listen_addresses='*'
# 信任远程连接
cat >> /var/lib/pgsql/9.6/data/pg_hba.conf << EOF
host    all  all  10.7.18.103/16 trust
EOF
# 6)重启PostgreSQL服务
systemctl restart postgresql-9.6
# 7)验证服务 及其 创建空间
psql -h 10.7.18.2 -p 5432 -U postgres
postgres=# create database registry;
CREATE DATABASE
postgres=# create database notarysigner;
CREATE DATABASE
postgres=# create database notaryserver;
CREATE DATABASE
# 8)防火墙开启端口
firewall-cmd --zone=public --permanent --add-port=5432/tcp && firewall-cmd --reload
# 9)迁移数据库(历史数据,没有请忽略)
# 进入harbor-db容器导出相关表及数据
docker container exec -it harbor-db /bin/bash
# 导出数据库
pg_dump -U postgres registry > /tmp/registry.sql 
pg_dump -U postgres notarysigner > /tmp/notarysigner.sql  
pg_dump -U postgres notaryserver > /tmp/notaryserver.sql
# 将数据库复制到docker外部
docker container cp harbor-db:/tmp/registry.sql /tmp
docker container cp harbor-db:/tmp/notarysigner.sql /tmp
docker container cp harbor-db:/tmp/notaryserver.sql /tmp
# 将数据导入至外部PostgreSQL数据库
psql -h 10.7.18.2 -U postgres registry < /tmp/registry.sql
psql -h 10.7.18.2 -U postgres notarysigner  < /tmp/notarysigner.sql
psql -h 10.7.18.2 -U postgres notaryserver < /tmp/notaryserver.sql