知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。

说明
CentOS release 6.5 (Final) 2.6.32-431.el6.x86_64
postgresql-9.4.5
安装 yum-fastestmirror
yum install -y yum-fastestmirror
安装依赖的软件
yum install -y wget gcc make bison-devel readline-devel zlib-devel openssl-devel 
下载PostgreSQL
官网: http://www.postgresql.org/

下载 9.4.5
wget https://ftp.postgresql.org/pub/source/v9.4.5/postgresql-9.4.5.tar.gz
解压配置编译安装
tar zxvf postgresql-9.4.5.tar.gz
cd postgresql-9.4.5

./configure --prefix=/opt/postgresql --with-openssl 

make -j 4
make install
安装contrib
比如要安装 adminpack, 进入 adminpack
cd /root/postgresql-9.4.5/contrib/adminpack
make all
make install
设置控制脚本
cp /root/postgresql-9.4.5/contrib/start-scripts/linux /etc/init.d/postgresql

chmod 775 /etc/init.d/postgresql
vim /etc/init.d/postgresql

修改以下的变量:
prefix=/opt/postgresql
PGDATA="/data1/pgsql/data"
PGUSER=postgres
PGLOG="$PGDATA/serverlog"
增加PostgreSQL 用户
adduser postgres -d /opt/postgresql
创建数据目录
mkdir -p /data1/pgsql/data
chown -R postgres:postgres /data1/pgsql/data
初始化
su - postgres
/opt/postgresql/bin/initdb -U postgres -E=UTF8  -D /data1/pgsql/data
编辑认证文件
vi /data1/pgsql/data/pg_hba.conf

local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust


host all all 192.168.0.0/24 md5
编辑配置文件
vi /data1/pgsql/data/postgresql.conf

listen_addresses = '*'         
port = 5432    
fsync = on                         
max_connections = 100 
shared_buffers = 128MB 
work_mem = 10MB
effective_cache_size = 256MB
maintenance_work_mem = 64MB
dynamic_shared_memory_type = posix
log_timezone = 'Asia/Shanghai'
log_destination = 'stderr'
logging_collector = on
log_directory = '/data1/pgsql/data/'
log_filename = 'postgresql-%Y-%m-%d'
log_line_prefix = ' %t %d %u '
datestyle = 'iso, mdy'
timezone = 'Asia/Shanghai'
lc_messages = 'en_US.UTF-8' 
lc_monetary = 'en_US.UTF-8'                     
lc_numeric = 'en_US.UTF-8'                      
lc_time = 'en_US.UTF-8'                        
default_text_search_config = 'pg_catalog.english'
checkpoint_segments = 32
checkpoint_completion_target = 0.9
commit_delay = 10
commit_siblings = 4
启动
在 postgres 用户下:
/opt/postgresql/bin/pg_ctl -D /data1/pgsql/data -l /data1/pgsql/data/logfile start 

在 root 用户下:
/etc/init.d/postgresql start
检查端口
ss -a | grep postgres
连接创建数据库
/opt/postgresql/bin/psql -U postgres

设置密码
\password postgres

查看所有用户
\du

查看当前连接信息
\conninfo

创建数据库
CREATE DATABASE test WITH OWNER = postgres ENCODING = 'UTF8';

查看数据库
\l

选择test数据库
\c test

创建表test_table
CREATE TABLE test_table(id serial PRIMARY KEY, name VARCHAR(50) NOT NULL);

查看test的所有表
\d

插入数据
INSERT INTO test_table(name) VALUES('Nate');

查询数据
SELECT * FROM test_table;

退出
\q
防火墙开放端口
iptables -I INPUT -p tcp --dport 5432 -j ACCEPT
iptables-save
停止
在 postgres 用户下:
/opt/postgresql/bin/pg_ctl -D /data1/pgsql/data stop

在 root 用户下:
/etc/init.d/postgresql stop