CentOS 7安装 Postgres

零、前置条件

  • 系统CentOS 7,并已联网,已安装gcc或者g++编译器,GNU make版本3.80或以上,系统有至少一个除root之外的普通用户user
    • gcc安装-参考链接
    • 查看make命令的版本——make --version
    • 更新make版本-参考链接
    • postgresql的使用一般不用root用户,而是普通用户,这里假设普通用户名为user。Linux创建新用户-参考链接
  • Xshell建立起与CentOS 7系统的会话
  • Xftp同样建立了与CentOS 7的链接

一、下载、转移、解压

下载

  • 首先在本地打开以链接,下载postgresql-xx.xreadline-7.0zlib-1.2.xx
https://www.postgresql.org/ftp/source/
  • PostgresSQL建议下载最新版本,打开后的版本列表中,选择最新的正式版本,最好不要选带beta的
http://ftp.gnu.org/gnu/readline/readline-7.0.tar.gz
  • 下载zlib前,先开官网http://www.zlib.net/看一下最新版本号,比如这里是1.2.13,那么下面下载链接中的版本号就改成最新的版本号
    CentOS 7安装 Postgres_第1张图片
http://www.zlib.net/zlib-1.x.xx.tar.gz

转移

  • 在root用户下的/root目录下操作
[root@localhost ~]# mkdir pgsoft
  • 打开xftp,将刚刚下载好的三个压缩包拖到刚刚建立目录下面/root/pgsoft
    CentOS 7安装 Postgres_第2张图片

解压

[root@localhost pgsoft]# tar -xf readline-7.0.tar.gz
[root@localhost pgsoft]# tar -xf zlib-1.x.xx.tar.gz
[root@localhost pgsoft]# tar -xf postgresql-xx.x.tar.gz
  • 版本号根据实际情况来

二、安装

readline安装

[root@localhost pgsoft]# cd readline-7.0
[root@localhost readline-7.0]# ./configure
[root@localhost readline-7.0]# make
[root@localhost readline-7.0]# make install
  • 安装readline开发包readline-devel,不然后面安装postgresql时会提示错误configure: error: readline library not found
[root@localhost readline-7.0]# yum install readline-devel

zlib安装

[root@localhost readline-7.0]# cd /root/pgsoft/zlib-1.x.xx
[root@localhost zlib-1.x.xx]# ./configure
[root@localhost zlib-1.x.xx]# make
[root@localhost zlib-1.x.xx]# make install

postgresql安装

# 为pg安装新建一个目录/opt/pgsql-xx.x
[root@localhost ~]# mkdir -p /opt/pgsql-xx.x

# 将opt目录的拥有权给予给普通用户user
[root@localhost ~]# chown user -R /opt	

# 进入下载转移解压后的postgresql目录			
[root@localhost ~]# cd /root/pgsoft/postgresql-xx.x

# 配置postgresql
[root@localhost postgresql-xx.x]# ./configure --prefix=/opt/pgsql-xx.x

# 编译postgresql,这一步耗时稍微较长
[root@localhost postgresql-xx.x]# make world

# 安装postgresql
[root@localhost postgresql-xx.x]# make install -world
  • 验证postgres是否安装成功
# 查看安装目录/opt/pgsql-xx.x,安装成功的话会出现以下四个目录
[root@localhost postgresql-15.3]# ll /opt/pgsql-xx.x/
总用量 16
drwxr-xr-x. 2 root root 4096 69 09:29 bin
drwxr-xr-x. 6 root root 4096 69 09:29 include
drwxr-xr-x. 4 root root 4096 69 09:29 lib
drwxr-xr-x. 6 root root 4096 69 09:29 share

# 查看安装的postgres版本是否对应,这里以15.3版本为例
[root@localhost postgresql-15.3]# /opt/pgsql-15.3/bin/postgres --version
postgres (PostgreSQL) 15.3

三、安装数据目录

  • 数据目录,即后续数据库使用中数据存放的目录
# 递归创建新目录,版本号记得根据实际情况更换
[root@localhost ~]# mkdir -p /pgdata/15.3/poc/{data,archive,scripts,backup}

# 将该目录的拥有权赋给普通用户user
[root@localhost ~]# chown -R user /pgdata/15.3/

# 初始化数据目录
# 首先由root切换到普通用户
[root@localhost pgsoft]# su - user
上一次登录:五 69 09:32:48 CST 2023pts/0 上
# 进入数据目录,用initdb命令初始化该目录,初始化成功后最后出现Success字样
[user@localhost ~]$ cd /pgdata/15.3/poc
[user@localhost poc]$ /opt/pgsql-15.3/bin/initdb  -D /pgdata/15.3/poc/data/ -E UTF-8
……
……
Success. You can now start the database server using:
    /opt/pgsql-15.3/bin/pg_ctl -D /pgdata/15.3/poc/data/ -l logfile start

# 对数据目录开放读写执行权限
[userb@localhost poc]$ chmod 0700 data/

# 启动PostgreSQL,启动成功后最后一行会出现server started
[userb@localhost poc]$ /opt/pgsql-15.3/bin/pg_ctl -D /pgdata/15.3/poc/data/ start
waiting for server to start....2023-06-09 09:43:50.826 CST [18923] LOG:  starting PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2023-06-09 09:43:50.828 CST [18923] LOG:  listening on IPv6 address "::1", port 5432
2023-06-09 09:43:50.828 CST [18923] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2023-06-09 09:43:50.832 CST [18923] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2023-06-09 09:43:50.836 CST [18926] LOG:  database system was shut down at 2023-06-09 09:42:19 CST
2023-06-09 09:43:50.855 CST [18923] LOG:  database system is ready to accept connections
 done
server started

四、创建PostgreSQL第一个数据库实例

# 使用createdb命令创建第一个数据库实例,如果不产生任何响应则表示该步骤成功
[userb@localhost poc]$ /opt/pgsql-15.3/bin/createdb my_first_pgdb

五、将PostgreSQL的安装路径添加到Shell的搜索路径

# 注意切换到root用户
[root@localhost ~]# su - root
password:

# 当前环境变量中的路径
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

# 将postgres安装目录/opt/pgsql-xx.x/bin添加到环境变量中
[root@localhost ~]# export PATH="$PATH:/opt/pgsql-15.3/bin"

# 再次查看环境变量PATH值
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/pgsql-15.3/bin

# 验证是否有效,不在安装目录下,直接运行postgres --version如果能出现相关信息,则表示已经添加成功
[root@localhost ~]# postgres --version
postgres (PostgreSQL) 15.3

# 添加完成路径后可以直接使用/opt/pgsql-15.3/bin下的命令,而不需要加绝对路径,例如上面创建数据库实例,可以直接写成
[userb@localhost poc]$ createdb my_first_pgdb

你可能感兴趣的:(数据库,linux,postgresql)