Linux下 PostgreSQL 编译安装

准备工作

创建用户

#创建用户和组
groupadd postgres
useradd -g postgres postgres

准备安装目录

如果进行过仓库安装的话,要记得通过(yum remove 或者 apt-get remove)移除。

#进入安装目录
cd /usr/local/

#删除原有安装(如果有的话)
rm -rf postgres*

下载源码

PostgreSQL官方下载自己想要的版本的源代码。这边我以9.6.1为例。

#获取压缩包
wget https://ftp.postgresql.org/pub/source/v9.6.1/postgresql-9.6.1.tar.gz

#解压
tar zxvf postgresql-9.6.1.tar.gz

编译启动

安装

#配置
cd postgresql-9.6.1
./configure --prefix=/usr/local/postgresql --without-readline

#编译安装
make && make install

#安装contrib目录下的一些工具,是第三方组织的一些工具代码,建议安装
cd contrib
make && make install

创建数据目录

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

添加环境变量

#切换用户
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'

#初始化数据库
initdb -D /var/postgresql/data

#启动服务
pg_ctl -D /var/postgresql/data -l /var/postgresql/logfile start

测试

#登录客户端使用"psql 数据库名"登录数据库。
#缺省数据库名时,连接到默认的数据库postgres。
#本地不用指定数据库
psql

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

#切换到test 数据库
\c test

#创建测试表
create table test (id integer, name text);

#插入测试数据
insert into test values (1,'david');

#选择数据
select * from test ;

其它配置

修改linux 系统用户postgres 的密码

passwd postgres

修改PostgresSQL 数据库配置实现远程访问

#修改postgresql.conf 文件
vi /var/postgresql/data/postgresql.conf

#--------------------允许远程连接---------------------------
#修改客户端认证配置文件pg_hba.conf,将需要远程访问数据库的IP地址或地址段加入该文件
vi /var/postgresql/data/pg_hba.conf

#在文件的最下方加上下面的这句话(出于安全考虑,不建议这样配置)
host    all         all         0.0.0.0/0             trust

#设置监听整个网络,查找“listen_addresses ”字符串,
vi /var/postgresql/data/postgresql.conf

#修改为如下:
listen_addresses = '*' 

查看端口

#重启服务
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

猜你喜欢

转载自blog.csdn.net/weixin_40543143/article/details/80655455