CentOS 下 PostgreSQL 的编译安装

一、PostgreSQL简介

​ PostgreSQL 数据库是一个自由的对象-关系型数据库服务器(数据库管理系统),它提供了相对其他开源数据库系统(MySQL、Firebird)和专有系统(Oracle、Sybase、IBM 以及微软的 Microsoft SQL Server)之外的另一种选择。
PostgreSQL强壮的一个特点就是源于它的架构。和其他的商业数据库一样,PostgreSQL可以用于客户与服务器之间的环境(C/S)。这对于用户和开发人员有很多好处。PostgreSQL安装的核心就是数据库服务端进程。它允许在一个独立的服务器上。需要访问存储在数据库中的数据的应用程序必须通过数据库进程。这些客户端无法直接访问数据,即使他们与服务程序在同一个机器上。

二、源代码安装

2.1环境库安装

​ 首先从网站上下载 PostgreSQL 数据库源代码,在下载列表中选择所需的数据库版本。网站:https://www.postgresql.org/ftp/source
由于我们要在CentOS下安装,需要选择源码。将PostgreSQL压缩包进行解压,进入解压目录,通过./configure –help 可以看到帮助信息。
<center>./configure --prefix=/usr/local/postgresql</center>
如果缺少C编译器,安装一个gcc编译器即可。yum install gcc
如果缺少readline库,则安装readline包。但是系统一般会自带readline包。
<center>rpm -qa | grep readline</center>
但是有时候还需要readline开发包(readline-devel),而不是readline包。
<center>yum install readline-devel</center>
若安装的时候还缺少zlib开发包继续安装zlib-develyum install zlib-devel
配置完成后会发现创建了config.status配置文件:make&&make install

创建数据目录

#建postgres数据库的目录
mkdir -p /var/postgresql/data
chown postgres:postgres /var/postgresql -R
chown postgres:postgres /usr/local/postgresql -R

2.2用户权限和环境变量

首先添加用户postgres useradd postgres
接下来设置权限,将postgres的数据库目录赋给postgres用户。首先切换到postgres用户 su - postgres 打开.bash_profile

export PGHOME=/usr/local/postgresql
export PGDATA=/var/postgresql/data
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
alias rm='rm  -i'
alias ll='ls -lh'
#alias pg_start='pg_ctl start -D $PGDATA'
#alias pg_stop='pg_ctl stop -D $PGDATA -m fast'

修改以后,可以source一下使其生效。source ./.bash_profile
接下来检查是否有正确设定环境变量,任意切换目录输入which psql以及psql -V 即可分别查看psql客户端的路径和postgreSQL的数据库版本。

2.3数据库初始化

环境变量配置结束后,直接执行initdb即可初始化DB。在使用initdb进行初始化的同时我们可以指定参数来同时进行一些初始化工作,指定pgdata(postgresql数据目录)、指定encoding(编码)、指定数据库超级用户的用户名和密码等等,在最后面我标记出的这段话指出了如果data目录没有指定,则会默认使用环境变量中的PGDATA,由于之前我们刚刚设置了PGDATA环境变量,所以此处我们也就无需再额外指定,最后执行初始化命令:
initdb -D /var/postgresql/data pg_ctl D /var/postgresql/data -l /var/postgresql/logfile start

可以通过SQL语句测试postgreSQL数据库

psql
#登录数据库

create database test;
#创建测试数据库

\c test
#切换数据库

create table student(
sno char(10),
sname char(15),
age int,
);
#创建数据库表

insert into student values('14030110001','WHH',21);
#插入测试数据

select * from test;
#输出数据

2.4 修改PostgreSQL数据库的配置实现远程访问

vim /var/postgresql/data/postgresql.conf
#设置舰艇网络找到listen_addresses 关键字
listen_addresses = '*'


vim /var/postgresql/data/pg_hba.conf
#在文件下方添加这句话
host    all    all    0.0.0.0/0   trust#添加到需要链接的主机地址

​ 查看端口

#重启服务
pg_ctl -D /var/postgresql/data -l /var/postgresql/logfile restart
#停止服务
pg_ctl -D /var/postgresql/data -l /var/postgresql/logfile stop
#端口是否启用了
netstat -anp | grep 5432

此文档为个人总结文档,非原创。

    原文作者:狐狸的面包
    原文地址: https://www.jianshu.com/p/6cb5096a717f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞