linux下源码编译安装postgreSQL11.7

软件环境:

  • redhat5 64位系统
  • postgreSQL11.7源码包

1、将源码包拷贝到linux服务器上(root)

/*
源码包可以从官网下载。
我这里提供一份我已经下载好的postgreSQL11.7源码包:
链接:https://pan.baidu.com/s/1ZryENl6oTEd3TNsWtS8wvg
提取码:dvs1
*/
使用root用户将源码包postgresql-11.7.tar.gz拷贝到数据库服务器上。
在这里插入图片描述
解压到当前目录下:
tar -zxvf postgresql-11.7.tar.gz
在这里插入图片描述

2、检查安装环境(root)

进入解压后的目录:
cd postgresql-11.7

执行如下命令检查安装环境:
./configure --prefix=/usr/local/pgsql

在检查安装环境过程中如果没有出现错误,并最后出现如下界面,则成功,否则,需要先检查错误原因,再重新执行该命令。
在这里插入图片描述

3、开始编译源码(root)

执行如下命令开始编译源码(整个编译时间可能会比较长,细心等待):
make

编译完成后,会有如下画面,表示编译成功。
在这里插入图片描述

4、 开始安装(root)

安装目录在检查安装环境那个章节已经配置好,这里只需要执行如下命令,开始安装:
make install

出现如下画面,表示安装完成。
在这里插入图片描述
切换到/usr/local目录,可以发现已经有pgsql目录了。
在这里插入图片描述

5、 创建用户(root)

编译安装成功后,接下来要做的就是创建一个普通用户,因为默认超级用户(root)不能启动postgresql,所以需要创建一个普通用户来启动数据库,执行以下命令创建用户:
groupadd postgres
useradd -g postgres postgres
passwd postgres

在/usr/local/pgsql下分别创建数据目录(data)和日志目录(log):
mkdir -p /usr/local/pgsql/data
mkdir -p /usr/local/pgsql/log

接下来设置权限,将pg的数据目录全部赋给postgres用户,执行以下命令:
chown -R postgres:postgres /usr/local/pgsql

6、配置环境变量(postgres)

切换到postgres用户,使用命令vi .bashrc添加如下环境变量:

export PGHOME=/usr/local/pgsql
export PGDATA=/usr/local/pgsql/data            
export PGLOG=/usr/local/pgsql/log/serverlog
export PATH=${PGHOME}/bin:$PATH
export LD_LIBRARY_PATH=${PGHOME}/lib:$LD_LIBRARY_PATH

为了使环境变量立即生效,执行如下命令:
source .bashrc

7、初始化数据库(postgres)

使用postgres用户执行如下命令:
initdb -D $PGDATA -U postgres --locale=en_US.UTF8 -E UTF8

看到如下画面表示数据库初始化成功:
在这里插入图片描述

8、设置参数文件(postgres)

使用postgres用户,执行vi /usr/local/pgsql/data/postgresql.conf 修改如下参数(监听地址、监听端口、最大连接数):

listen_addresses = '*'
port = 5432
max_connections = 100

执行vi /usr/local/pgsql/data/pg_hba.conf修改如下参数(客户端认证):

# IPv4 local connections:
host   all             all             0.0.0.0/0            md5

9、启动数据库(postgres)

pg_ctl start -D $PGDATA -l $PGLOG

10、停止数据库(postgres)

pg_ctl stop -D $PGDATA -m fast -W

11、配置系统服务,开机自启动(root)

进入postgresql源码包的解压目录(本文为/root/postgresql-11.7),执行命令 cp contrib/start-scripts/linux /etc/init.d/postgresql,然后 vim /etc/init.d/postgresql,进行如下配置修改:

# contrib/start-scripts/linux

## EDIT FROM HERE
# Installation prefix
prefix=/usr/local/pgsql

# Data directory
PGDATA="/usr/local/pgsql/data"

# Who to run the postmaster as, usually "postgres".  (NOT"root")
PGUSER=postgres

# Where to keep a log file
PGLOG="$prefix/log/serverlog"

然后再分别执行如下命令:
chmod u+x postgresql
chkconfig --add postgresql

使用root用户测试配置的postgresql服务是否好使:
启动postgresql服务:
在这里插入图片描述

停止postgresql服务:
在这里插入图片描述

12、测试数据库连接(postgres)

(一) 本地连接
本地连接这里使用的是postgresql自带的客户端程序psql:
出现如下界面表示连接成功。
在这里插入图片描述

这里需要修改下postgres用户的密码,方便下面远程连接时使用。
在psql命令提示符下输入如下命令:
alter user postgres with password ‘postgres’;

(一) 远程连接
远程连接这里使用的是Navicat for PostgreSQL,一款第三方软件。
在这里插入图片描述
在这里插入图片描述

发布了224 篇原创文章 · 获赞 48 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/wo198711203217/article/details/104658828