避坑!手把手教你7种安装PG16的手艺

makefile 复制代码
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验
擅长主流数据Oracle、MySQL、PG、openGauss运维
备份恢复,安装迁移,性能优化、故障应急处理等

可提供技术业务:
1.DB故障处理/疑难杂症远程支援
2.Mysql/PG/Oracle/openGauss
数据库部署及数仓搭建
•••
微信:jem_db
QQ交流群:587159446
公众号:IT邦德
•••

@TOC PostgreSQL16的部署方式可以基于Linux,也可以在Window上部署,作为目前最火的关系型数据库,安装部署是第一步,本文详细介绍了PostgreSQL16的7种部署方式,并附带了避坑指南,希望带领大家开启PG的学习之路

1.安装概览

arduino 复制代码
官方文档指南
https://www.postgresql.org/docs/

2.源码安装

2.1 安装方法

bash 复制代码
1.源码包下载
官网下载安装包
https://www.postgresql.org/ftp/source/
安装包为:postgresql-16.2.tar.gz
2.创建用户
创建用户及组postgres,并对用户设置密码
3.创建目录
/pgccc/{pgdata,archive,scripts,backup,pgsql-16,soft}
chown -R postgres:postgres /pgccc
chmod -R 775 /pgccc
4.预编译
./configure --prefix=/pgccc/pgsql-16 --without-readline
5.编译及安装
make -j 4 && make install
6.初始化DB
 /pgccc/pgsql-16/bin/initdb -D /pgccc/pgdata -E UTF8 \
--locale=en_US.utf8 -U postgres
7.数据库启动
pg_ctl start

2.2 避坑

ini 复制代码
1.预编译的时候,如果缺少依赖,
如下图所示记得按照提示下载相关依赖即可
yum install libicu-devel -y
yum install zlib-devel -y
2.在Liunx安装的时候,PG16一般建议基于Liunx8,兼容性较高
3.本地yum源配置的时候,Linux8的配置方式如下:
vi rhel8-local.repo
[localREPO]
name=localhost8
baseurl=file:///mnt/cdrom/BaseOS
enable=1
gpgcheck=0

[localREPO_APP]
name=localhost8_app
baseurl=file:///mnt/cdrom/AppStream
enable=1
gpgcheck=0

3.RPM离线安装

3.1 安装

bash 复制代码
https://ftp.postgresql.org/pub/repos/yum/16/redhat/rhel-8.1-x86_64/
1.RPM包下载安装
数据库lib库
rpm -ivh postgresql16-libs-16.2-1PGDG.rhel8.x86_64.rpm
客户端安装包下载安装
rpm -ivh postgresql16-16.2-1PGDG.rhel8.x86_64.rpm
数据库主程序下载安装
rpm -ivh postgresql16-server-16.2-1PGDG.rhel8.x86_64.rpm

2.环境变量配置
su - postgres

cat >> ~/.bash_profile <<"EOF"
export LANG=en_US.UTF-8
export PS1="[\u@\h \W]\$ "
export PGPORT=5432
export PGDATA=/pgccc/pgdata
export PGHOME=/usr/pgsql-16
export PATH=$PGHOME/bin:$PATH:.
export PGUSER=postgres
export PGDATABASE=postgres
EOF

3.数据库初始化
mkdir -p /pgccc/{pgdata,archive,scripts,backup,pgsql-16,soft}
chown -R postgres:postgres /pgccc
chmod -R 775 /pgccc

su - postgres
/usr/pgsql-16/bin/initdb -U postgres -E utf8 -D /pgccc/pgdata

3.2 避坑

ini 复制代码
1.自启动管理
可以通过Linux8的systemctl的管理方式进行管理,
还可以设置开机自启动
vi /etc/systemd/system/postgresql.service

[Unit]
Description=postgresql.service  
After=network.target

[Service]
Type=forking
User=postgres      
Group=postgres
WorkingDirectory=/var/lib/pgsql
ExecStart=/usr/pgsql-16/bin/pg_ctl start -D /pgccc/pgdata
ExecReload=/usr/pgsql-16/bin/pg_ctl restart -D /pgccc/pgdata
ExecStop=/usr/pgsql-16/bin/pg_ctl stop -D /pgccc/pgdata
PrivateTmp=true

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl start postgresql.service
systemctl enable postgresql.service
2.在Liunx安装的时候,PG16一般建议基于Liunx8,兼容性较高

4.YUM在线安装

4.1 安装

bash 复制代码
1 安装YUM依赖
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

yum install -y cmake make gcc zlib gcc-c++ perl readline readline-devel
yum install -y zlib-devel perl python36 tcl openssl ncurses-devel openldap pam
yum install -y zlib libicu

2.配置PG YUM源
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

3.确认版本
dnf update
yum repolist all | grep pgdg
yum repolist enabled | grep pgdg

4.安装PG
yum install -y postgresql16 postgresql16-server

5.环境变量
--root下操作
echo "export PATH=/usr/pgsql-16/bin:$PATH" >> /etc/profile

6.初始化PG
/usr/pgsql-16/bin/postgresql-16-setup initdb

7.启动PG
systemctl restart postgresql-16   --重启
systemctl status postgresql-16  --查看状态

4.2 避坑

sql 复制代码
1.网络获取PG YUM源的时候,
会很慢记得如下命令更新即可

dnf update

2.安装的时候会缺少依赖,如下图所示
离线安装依赖包libzstd,百度下载即可
rpm -ivh libzstd-1.4.4-1.el8.x86_64.rpm
3.在Liunx安装的时候,PG16一般建议基于Liunx8,兼容性较高

5.docker安装

5.1 安装

ini 复制代码
1 拉取源
https://hub.docker.com/postgres
[root@centos7 ~]# docker pull postgres:16.2

2.容器创建
创建容器的时候,如果没有镜像直接下载
##pg16版本
docker run --name jempg14 -h jempg16 -d \
-p 54329:5432 -e POSTGRES_PASSWORD=jem \
-e TZ=Asia/Shanghai postgres:16.2

3.启动容器
docker restart jempg16

5.2 避坑

sql 复制代码
1.首先需要安装docker容器才可以
2.配置文件可以在宿主机配置好,然后拷贝到容器
#白名单配置
cat << EOF > /tmp/pg_hba.conf
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0        md5
host   replication  all    0.0.0.0/0        md5
local  replication  all                    trust
EOF
--拷贝至容器
docker cp /tmp/pg_hba.conf \
jempg16:/var/lib/postgresql/data/pg_hba.conf

6.Windows安装

6.1 Windows迷你安装

arduino 复制代码
迷你包下载
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads  

6.2 二进制安装

objectivec 复制代码
二进制包下载
https://www.enterprisedb.com/download-postgresql-binaries
注册服务
CMD注册PostgreSQL系统服务命令:
pg_ctl register -N PostgreSQL -D C:\postgresql-14.9-1-windows-x64-binaries\pgsql\data
相关推荐
中杯可乐多加冰1 个月前
【AI落地应用实战】Amazon Bedrock Converse API + Amazon Titan构建一个RAG应用(Retrieval-Augmente
人工智能·掘金·金石计划
边中之城1 个月前
如何从0到1开发自己的npm包
掘金·金石计划
中杯可乐多加冰1 个月前
Text to image论文精读PDF-GAN:文本生成图像新度量指标SSD Semantic Similarity Distance
人工智能·掘金·金石计划
Sword991 个月前
Rust 所有权理解与运用
前端·rust·掘金·金石计划
冯志浩1 个月前
Harmony Next - 图形绘制
harmonyos·掘金·金石计划
中杯可乐多加冰2 个月前
【AI落地应用实战】HivisionIDPhotos AI证件照制作实践指南
人工智能·掘金·金石计划
冯志浩2 个月前
Harmony Next - 多线程技术 TaskPool
harmonyos·掘金·金石计划
宇宙之一粟2 个月前
设计快速并发哈希表
后端·rust·掘金·金石计划
宇宙之一粟2 个月前
【译】Go 迭代器的乐趣
后端·go·掘金·金石计划
雨绸缪2 个月前
ABAP 的 “小技巧 ”和 “陷阱 ”以及新语法
后端·代码规范·掘金·金石计划