PostgreSQL 源码的编译及安装 centos6.5
1、 wget https://ftp.postgresql.org/pub/source/v10.0/postgresql-10.0.tar.bz2 下载源码
2、根据书上说的还需要安装zlib这个第三方的压缩开发包支持,使用rpm -q zlib发现系统上已经有了该包,不用再安装了
3、要想方便地再psql中使用上下键翻查历史命令,按照postgresql官方手册说明还要安装readline
yum search readline | grep dev,找到合适的,yum install readline-devel.x86_64
4、解压源码 tar xvf postgresql-10.0.tar.bz2
5、 ./configure --prefix=/usr/local/pgsql10.0 --with-perl --with-python
进入解压后的目录使用该指令编译安装 --pprefix=指定路径,不指定默认编译安装到usr/local下,--with-python才能使用python语法的PL/Python过程语言写自定义函数,with--perl同理,但都需要提前安装语言的开发包
在安装过程中遇到问题configure: error: could not determine flags for linking embedded Perl.,解决方案:yum install perl-ExtUtils-Embed
又遇到configure: error: header file <Python.h> is required for Python
解决方法:
yum install python python-devel
6、make 编译
7、make install 安装
8、配置环境变量 vi /etc/profile
export PATH=/usr/local/pgsql10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql10.0/lib:$LD_LIBRARY_PATH
然后export PGDATA=/home/用户/pgdata设定数据库中数据目录的环境变量
执行initdb,创建数据库簇
这里要注意的是initdb不可以在root下执行,需要切换用户,并且在执行过程中可能因为权限不够而无法在home下创建osdba导致initdb: could not create directory "/home/osdba": Permission denied,修改home权限即可
9、重新回到postgresql的安装目录下进入contrib,这下面的一些工具据书上说比较实用一般都会安装上,所以进入安装,make然后make install
10.、pg_ctl start -D $PGDATA启动数据库,其中$PGDATA指向具体的PostgreSQL数据库的数据目录,也可以直接把$PGDATA替换成环境变量中配置的目录
11、停止数据库的命令为:pg_ctl stop -D $PGDATA [-m SHUTDOWN-MODE]
-m指定了三种停止方法:
smart:等所有的连接中止后,关闭数据库,如果客户端连接不终止,则无法关闭数据库
fast:快速关闭数据库,断开客户端连接,让已有的事物回滚,然后正常关闭数据库,相当于oracle数据库关闭时的immediate模式
immediate:立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数据库需要进行恢复,相当于oracle数据库关闭时的abort模式
常用fast关闭数据库
12、安装好后默认有postgres数据库,和template0与template1两个模板数据库,用户创建数据库的时候默认是从模板数据库template1中克隆出来的,可以在该数据库中添加一些表和函数,这样后续创建的数据库会继承template1中的内容,template0是一个最简化的模板库,创建数据库时,如果明确指定从此数据库中继承,将创建出一个最简化的数据库