一、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 可以看到帮助信息。
./configure --prefix=/usr/local/postgresql
如果缺少C编译器,安装一个gcc编译器即可。
yum install gcc
如果缺少readline库,则安装readline包。但是系统一般会自带readline包。
rpm -qa | grep readline
但是有时候还需要readline开发包(readline-devel),而不是readline包。
yum install readline-devel
若安装的时候还缺少zlib开发包继续安装zlib-devel
yum 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
此文档为个人总结文档,非原创。