很详细的PostgreSQL安装部署教程

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 很详细的PostgreSQL安装部署教程

一、安装包获取方式

1、源码(生产库建议源码安装)

https://www.postgresql.org/ftp/source/

2、rpm

https://www.postgresql.org/download/linux/redhat/

3、二进制

https://www.enterprisedb.com/download-postgresql-binaries

二、安装部署

(一)本篇文章主要介绍源码安装,源码的安装一般由3个步骤组成:

配置(configure)

编译(make)

安装(make install)

(二)具体安装步骤如下:

1、安装依赖包

[root@localhost postgresql-14.12]#yum install -y cmake make gcc zlib zlib-devel gcc-c++ perl readline readline-devel python36 tcl openssl ncurses-devel openldap pam flex

2、创建专用用户

[root@localhost ]# useradd pgsql

[root@localhost ]# echo “test” | passwd —stdin pgsql


3、创建目录

[root@localhost ]# mkdir -p /postgresql/{pgdata,archive,scripts,backup,pg14,soft}

4、下载源码安装包并上传至/postgresql/soft目录下

本文以pg14.12为例

5、赋予权限

[root@localhost ]# chown -R pgsql:pgsql /postgresql

[root@localhost ]# chmod -R 775 /postgresql

6、切换至普通用户,解压安装包

[root@localhost soft]# su - pgsql

[pgsql@localhost soft]$ tar -xvf /postgresql/soft/postgresql-14.12.tar.gz

[pgsql@localhost postgresql-14.12]$ cd /postgresql/soft/postgresql-14.12

7、认识源码目录(*)

-rw-r—r—. 1 pgsql pgsql 445 May 7 04:24 aclocal.m4

drwxrwxrwx. 2 pgsql pgsql 4096 May 7 04:38 config

-rwxr-xr-x. 1 pgsql pgsql 595030 May 7 04:24 configure 源码安装的配置脚本

-rw-r—r—. 1 pgsql pgsql 86732 May 7 04:24 configure.ac

drwxrwxrwx. 58 pgsql pgsql 4096 May 7 04:38 contrib 已打包到PG源码中的第三方贡献的插件源码

-rw-r—r—. 1 pgsql pgsql 1192 May 7 04:24 COPYRIGHT

drwxrwxrwx. 3 pgsql pgsql 87 May 7 04:38 doc 文档

-rw-r—r—. 1 pgsql pgsql 4279 May 7 04:24 GNUmakefile.in

-rw-r—r—. 1 pgsql pgsql 277 May 7 04:24 HISTORY 版本变更的历史记录

-rw-r—r—. 1 pgsql pgsql 63935 May 7 04:39 INSTALL 安装说明

-rw-r—r—. 1 pgsql pgsql 1665 May 7 04:24 Makefile

-rw-r—r—. 1 pgsql pgsql 1213 May 7 04:24 README

drwxrwxrwx. 16 pgsql pgsql 4096 May 7 04:39 src 源代码

8、编译

[pgsql@localhost postgresql-14.12]$ ./configure —prefix=/postgresql/pg14

[pgsql@localhost postgresql-14.12]$ make world -j 16 && make install-world

9、设置系统环境变量

cat >> ~/.bash_profile <<”EOF”

export PGPORT=5432

export PGDATA=/postgresql/pgdata

export PGHOME=/postgresql/pg14

export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

export PATH=$PGHOME/bin:$PATH:.

export PGHOST=$PGDATA

export PGUSER=postgres

export PGDATABASE=postgres

EOF

source ~/.bash_profile

10、初始化数据库

[pgsql@localhost postgresql-14.12]$ /postgresql/pg14/bin/initdb -D /postgresql/pgdata -E UTF8 —locale=en_US.utf8 -U postgres

11、修改配置参数

[pgsql@localhost postgresql-14.12]$ cat >> /postgresql/pgdata/postgresql.conf <<”EOF”

listen_addresses = ‘*’

port=5432

unix_socket_directories=’/postgresql/pgdata’

logging_collector = on

log_directory = ‘pg_log’

log_filename = ‘postgresql-%a.log’

log_truncate_on_rotation = on

EOF

[pgsql@localhost postgresql-14.12]$ cat > /postgresql/pgdata/pg_hba.conf << EOF

TYPE DATABASE USER ADDRESS METHOD

host all all 0.0.0.0/0 md5

EOF

12、启动数据库

[pgsql@localhost postgresql-14.12]$ pg_ctl start

13、至此pg14已经安装成功了。下面设置开机服务自启动,切换至root用户。

[root@localhost soft]# cat > /etc/systemd/system/PG14.service <<”EOF”

[Unit]

Description=PostgreSQL database server

Documentation=man:postgres(1)

After=network.target

[Service]

Type=forking

User=pgsql

Group=pgsql

Environment=PGPORT=5432

Environment=PGDATA=/postgresql/pgdata

OOMScoreAdjust=-1000

ExecStart=/postgresql/pg14/bin/pg_ctl start -D ${PGDATA} -s -o “-p ${PGPORT}” -w -t 300

ExecStop=/postgresql/pg14/bin/pg_ctl stop -D ${PGDATA} -s -m fast

ExecReload=/postgresql/pg14/bin/pg_ctl reload -D ${PGDATA} -s

KillMode=mixed

KillSignal=SIGINT

TimeoutSec=0

[Install]

WantedBy=multi-user.target

EOF

systemctl daemon-reload

systemctl enable PG14

systemctl start PG14

systemctl status PG14

切回pgsql用户,设置密码

[pgsql@localhost ~]$ psql

psql (14.12)

Type “help” for help.

postgres=# alter user postgres with password ‘test’;

ALTER ROLE

(三)相关环境变量解释

PGHOST 要联接的主机名主机名以斜杠开头。

PGHOSTADDR 与之连接的主机的IP地址。

PGPORT 主机服务器的端口号,或者在 Unix 域套接字联接时的套接字扩展文件名。

PGDATABASE 数据库名

PGUSER 要连接的PostgreSQL用户名。缺省是与运行该应用的用户操作系统名同名的用户。

PGPASSWORD 如果服务器要求口令认证,所用的口令。

PGPASSFILE 指定密码文件的名称用于查找。如果没有设置, 默认为~/.pgpass

PGSERVICE 用于额外参数的服务名。

PGSERVICEFILE 指定连接服务的文件中每个用户的名字, 如果没有设置默认~/.pg_service.conf

PGREALM 设置与PostgreSQL一起使用的 Kerberos 域, 如果该域与本地域不同的话。

PGOPTIONS 添加命令行选项以在运行时发送到服务器。

PGAPPNAME 为application_name配置参数指定一个值。

PGSSLMODE 这个选项决定是否需要和服务器协商一个SSL TCP/IP连接。

PGREQUIRESSL 废弃

PGSSLCOMPRESSION SSL连接进行的数据是否压缩。

PGSSLCERT 这个参数指定客户端SSL认证的文件名。

PGSSLKEY 这个参数指定客户端使用的秘钥的位置。

PGSSLROOTCERT 这个参数声明一个包含SSL认证授权(CA)证书的文件名。

PGSSLCRL 这个参数声明SSL证书撤销列表(CRL)的文件名。

PGREQUIREPEER 这个参数声明服务器的操作系统用户名。

PGKRBSRVNAME 使用GSSAPI认证时使用的Kerberos服务名。

PGGSSLIB 为GSSAPI认证使用的GSS库。只在Windows上使用。

PGCONNECT_TIMEOUT 连接的最大等待时间,以秒计(用十进制整数字串书写)。

PGCLIENTENCODING 为这个连接设置client_encoding配置参数。

PGDATESTYLE 设置缺省的时区。(等效于SET timezone TO …。)

PGTZ 设置缺省的时区。(等效于SET timezone TO …。)

(libpq)PGSYSCONFDIR 设置包含pg_service.conf文件。

(libpq)PGLOCALEDIR 设置包含信息国际化的locale文件目录。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
6月前
|
关系型数据库 Java 数据库连接
PostgreSQL从小白到高手教程 - 第47讲:JMETER工具使用
PostgreSQL从小白到高手教程 - 第47讲:JMETER工具使用
185 3
|
Ubuntu 关系型数据库 数据库
百度搜索:蓝易云【Ubuntu系统安装 PostgreSQL详细教程。】
现在,你已经成功在Ubuntu系统上安装了PostgreSQL,并创建了一个新的数据库和用户。你可以使用所创建的用户凭据连接到数据库并开始使用。记得根据你的具体需求进行进一步的配置和安全性调整。
286 2
|
关系型数据库 数据库 数据安全/隐私保护
PostgreSQL安装和使用教程
PostgreSQL安装和使用教程
403 0
|
6月前
|
Oracle 关系型数据库 数据库
postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用
postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用
183 0
|
存储 关系型数据库 Java
PostgreSQL 教程
本 PostgreSQL 教程可帮助您快速了解 PostgreSQL。您将通过许多实际示例快速掌握 PostgreSQL,并将这些知识应用于使用 PostgreSQL 开发应用程序。
390 1
PostgreSQL 教程
|
6月前
|
关系型数据库 数据库 PostgreSQL
|
6月前
|
负载均衡 监控 关系型数据库
PostgreSQL从小白到高手教程 - 第48讲:PG高可用实现keepalived
PostgreSQL技术大讲堂 - 第48讲:PG高可用实现keepalived
213 1
|
6月前
|
SQL 关系型数据库 OLAP
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
PostgreSQL从小白到高手教程 - 第46讲:poc-tpch测试
152 3
|
6月前
|
关系型数据库 OLAP OLTP
PostgreSQL从小白到高手教程 - 第45讲:poc-tpcc测试
CUUG PostgreSQL技术大讲堂系列公开课第45讲-POC-TPCC测试的内容,往期视频及文档,请联系CUUG。
145 1
|
6月前
|
Oracle 关系型数据库 数据库
PostgreSQL从入门到精通教程 - 第42讲:pg_rman部署与使用
PostgreSQL从入门到精通教程 - 第42讲:pg_rman部署与使用
168 1