PostgreSQL 默许的用户是postgres , 引荐先创立该用户。

Linux创立用户,指定用户家目录,创立环境变量文件的具体方法百度一下哈,我偷闲了

咱们是经过编译源码的方法装置,这期间需求装置一下必要的依靠包,假如依靠包没有装置,则在编译期间会报错。 由于个人环境的不同,依据报错缺少的依靠包,个人装置。

这儿依据PG13.8来做演示

准备工作

下载 PG 源码 www.postgresql.org/ftp/source/

解压PG 源码得到对应的解压文件夹

Linux 系统安装部署 PostgreSQL (一)

编译源码:

1. 装备编译的相关参数

./configure –prefix=/chason/postgres/base/pg_13.8

PS: prefix 表明编译之后,将PG装置在哪,别忘记咱们下载的是源码,并不是能够运转的PG软件,这个路径便是装备咱们将生成的可履行的psql之类的文件放在哪,换言之便是软件目录。

这儿咱们呈现了第一个过错

Linux 系统安装部署 PostgreSQL (一)

过错提示咱们少了readline的包,咱们看看体系里

Linux 系统安装部署 PostgreSQL (一)

发现其实是有readline 的,其实问题的真正原因是,除了要有readline 还需求装置readline-devel,至于这个功用有什么用,咱们后边专门开一篇文章讲一讲;尽管提示中说能够经过 –without-readline 屏蔽参数,可是我不是很引荐这个方法,后边说原因。

那么咱们给这个依靠库装置上

Linux 系统安装部署 PostgreSQL (一)

经过一番等候装置成功,咱们再次履行装备 好的,不出所料,再次出错了,遇到问题这事儿太普通了,继续处理!

Linux 系统安装部署 PostgreSQL (一)

这次是少了zlib,不慌,咱们继续装置依靠包

再次履行装备,发现装备成功啦!

留上上面这一段是想说明,每个人环境不一样,装置的依靠也不一样,编译的时分或许会出各种问题,可是不慌,依据提示,咱们只要将环境弄好,一切的装备和编译都会很顺畅。 或许有人会问了,履行个装备怎样需求装置这么多的依靠,首要是由于每个依靠都有他不同的效果,后边会开一期专门来讲一讲这些依靠,现在咱们的重头戏是先装置好。

2. 履行编译

履行 make && make install

假如是第一次编译,这个阶段或许需求消耗一些时间,当然也或许会遇到各种问题,最常见的问题便是gcc没装置好,或许和Linux内核版本不匹配形成的编译失败,这时分咱们要重新装置gcc 假如呈现过错,记得要及时看过错的提示,大部分过错提示都十分直接,遇到问题咱们不要慌,依据过错提示处理他! 我这边呢由于环境没有问题直接一次经过了。

编译完成之后还记得咱们configure的那个prefix吗? 走,咱们去那个目录下

Linux 系统安装部署 PostgreSQL (一)

上面这四个便是咱们刚刚操作一顿编译的结果啦,当然,咱们常用的都在bin目录下

Linux 系统安装部署 PostgreSQL (一)

那么既然bin 目录出来了,那么接下来做什么? 当然是装备环境变量啦! 把pg bin的目录添加到环境变量中! 啥,你不会在Linux中装备环境变量? 百度一哈,很多大佬会教你怎样做,我由于懒,就不写了哈。

装备完环境变量之后,你在哪个目录下都能用PG指令啦!

Linux 系统安装部署 PostgreSQL (一)

初始化并创立PG实例

上面的动作是将源码编译成可履行文件,在MySQL中,就相当于你解压了一个MySQL的zip装置包…. 完成上面的步骤表明你环境里的PG软件装置好了,可是软件有了不代表你有PG实例了。

这儿咱们引荐将软件和实例的目录分开,这样,你在一台机器上就能够创立多个实例了,至于为什么要创立多个实例,当然是为咱们下一章 建立PG主从来做准备啊~

我的软件目录是:/chason/postgres/base/pg_13.8

我的实例目录是:/chason/postgres/instances

Linux 系统安装部署 PostgreSQL (一)

我的习气是,经过不同的端口区分PG实例,实例的主目录经过pg端口号来区分,各位能够依据自己的习气来,可是要记住自己的实例在哪个目录

1. 初始化 PG

initdb -D /chason/postgres/instances/pg6100/data -E UTF8

经过initdb对PG进行初始化,咱们把数据目录放到实例的data下

Linux 系统安装部署 PostgreSQL (一)

假如履行成功会提示你成功,并告诉你发动PG的指令,可是咱们不着急发动,咱们先来装备一下

2. 修正装备文件

(1). 修正Postgresql.conf

Linux 系统安装部署 PostgreSQL (一)

咱们简略修正一下装备文件,将文件目录修正成自己对应的目录 修正端口 否则便是默许端口5432 修正最大连接数为了后边主从做准备

(2). 修正pg_hba.conf

Linux 系统安装部署 PostgreSQL (一)

咱们为了自己便利添加了一行全信任免密,这个只是为了咱们自己测试便利,千万不要在任何出产环境这么装备,否则你会体会从入职到离任!

发动PG 并登录实例

1. 发动

还记得咱们初始化完成之后的提示吗? 没错就用提示的指令发动

Linux 系统安装部署 PostgreSQL (一)

实例发动成功,接下来咱们登录

2. 登录

咱们运用psql指令进行登录

Linux 系统安装部署 PostgreSQL (一)

补充知识

前面咱们埋了一个坑,咱们装备的时分遇到的过错,官方的提示说能够运用 –without-readline来处理,不用装置readline-devel包;我的引荐是装置对应的包。

首先咱们要知道 readline是干嘛用的, readline 用于记载你之前的输入记载,便利你能够经过方向键来进行之前输入的快速填充。

举个栗子:

postgres=# select now();
              now              
-------------------------------
 2023-02-06 13:40:40.217387+08
(1 row)
postgres=# select now();

当咱们输入过 select now(); 第2次需求相同的sql ,只要按方向上键就能够了。

假如咱们运用 –without-readline 会发生什么呢?

postgres=# select now();
              now              
-------------------------------
 2023-02-06 13:40:40.217387+08
(1 row)
postgres=# ^[[A

你会发现 ,方向键不论用了,已经变成了一个奇怪的编码。 尽管PG官方不引荐运用readline(这也是为啥只有 –without-readline 没有 –with-readline)可是这玩意会极大的便利咱们写SQL, 我引荐仍是装上,不要禁用。