PostgreSQL学习之一:安装

环境:

操作系统:Red Hat Enterprise Linux Server release 6.8

PostgreSQL: 11.4

1,从官网下载安装包

https://www.postgresql.org/ftp/source/

postgresql-11.4.tar.gz 或者
postgresql-11.4.tar.bz2

2,源码安装的要求

必须项,虽然有without的选项,但是建议不这么做:

a) make的版本要大于3.8

 命令:make --version

b) ISO/ANSI C 编译器

 命令:yum list installed|grep gcc

c) tar包

d) Readline库,用于上下文切换,默认使用,如果不需要,可以在configure的时候指定--without-readline。另外,对于linux使用程序包安装的方式,需要安装readline和readline-devel

 命令:yum list installed readline

e)zlib 压缩库,默认使用,如果不使用,同样需要指定--without-zlib,不过这样子会导致不支持对pg_dump和pg_restore的压缩功能,同样需要安装zlib以及zlib-devel

 命令:yum list installed zlib

非必选项

a) 如果要使用PL/Perl,你需要安装完整的perl,包括libperl库和头文件。最低版本要求是5.8.3. 因为PL/Perl会是一个share的库,所以libperl也必须是share的。
这个在最近版本的perl里面都是默认的,早先的版本则需要自己选择。configure的时候可能会因为找不到一个share的libperl而失败,这种情况你只能够重新安装perl。
如果你不仅仅只是偶尔使用,或者附带使用PL/Perl,你必须确保安装Perl的时候启用了usemultipicity选项。(:)完全没这方面的知识,不懂。)

b) 如果要使用PL/Python,你必须要安装python,包括头文件和工具发布模块。最低版本要求是Python 2.4. Python 3支持3.1以及之后的版本。
同样的,因为PL/Python会是share的库,libpython库也必须是share的。源码安装Python的时候,指定--enable-shared。

c)使用PL/Tcl过程语言,安装Tcl,最低版本8.4

d)启用NLS,允许显示非英语的程序语言信息,需要完整的Gettext API。如果操作系统没有内置,需要从http://www.gnu.org/software/gettext/下载插件包。如果你是用GNU C部署的的Gettext,还需要额外安装GNU Gettext

e)加密客户端连接,你需要OpenSSL,最低版本是0.0.8

PS:

如果是通过Git tree来安装,而不是发布的源码包,或者你想要做服务器开发,你也需要以下的包:
a) Flex 2.5.31 or later and Bison 1.875 or later
b) Perl 5.8.3

https://www.gnu.org/prep/ftp  or  ftp://ftp.gnu.org/gnu/

磁盘空间要求:

源码100MB,安装路径20MB。一个空的数据库集群需要35MB。数据库需要flat text文件的大小的五倍空间。如果你要跑regession test,你需要额外的150MB的临时空间

3,安装步骤

解压:tar -xzvf postgresql-11.4.tar.gz

到解压出来的目录:cd postgresql-11.4

第一步,configuration

./configure

这一步是为了配置对应你系统的源码文件,以及提供安装选项的选择。configure脚本会跑一系列的测试,来决定不同系统所依赖的变量的数值,并且检测是否有任何错误。最后会创建一些安装文件,记录测试结果。

所有的文件默认会安装在/usr/local/pgsql,也可以选择指定,不过如果目录不包含“postgres”或者“pgsql”,则会自动创建一个./postgresql

第二步,make

make

输出结果为:All of PostgreSQL successfully made. Ready to install.

PS:如果要编译所有可编译的内容,包括documentation和附件模块,则用:make world

可选,regression test

make check

第三步,安装文件

make install

如果前面跑的是make world,这里要跑的是:make install-world

PS:

卸载:make uninstall ,不会删除之前创建的路径

清理:make clean, 会清除source tree安装文件,但是会保留configure步骤生成的文件,所以不会影响重新make&&make install

还原:make distclean 如果你configure的时候的选项错了,可以选择这个操作,重置source tree,然后重新跑。

第四步,Post-Installation

1,share Libraries

在某些系统你需要配置LD_LIBRARY_PATH变量指向/usr/local/pgsql/lib, 在FreeBSD, HP-UX, Linux, Net-BSD, OpenBSD, 和 Solaris上这一步不是必须的。

2,配置环境变量

在~/.bash_profile或者/etc/profile(对所有用户生效)里面添加路径:

PATH=/usr/local/pgsql/bin:$PATH
export PATH

第五步,数据库操作

1,配置用户,一般是postgres,也可以自己指定

adduser postgres

passwd postgres

2,创建路径作为数据存储区域

mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data

3,初始化数据库集群,数据库集群是由单个实例管理的多个数据库的集合,在系统层面,数据库集群是一个存放数据的单一路径。

初始化命令:initdb,-D指定数据存放路径,可以通过设置环境变量PGDATA代替-D选项。

su - postgres

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

初始化的过程中,会默认创建两个数据库,一个是postgres,数据库服务本身并不要求一定要有这一个数据库,只不过某些第三方软件会默认有这个DB。

另一个是template1,这个是一个模板,用于后续创建的数据库,不应该用来做实际使用。

如果在初始化之前,路径里面就已经有其他文件了,就没办法跑initdb,这是为了避免覆盖其他已安装的数据库。

同时,因为该路径是用来存储数据的,所以initdb的过程也会移除其他用户的权限,除了postgres本身这个用户,而像group,Group这种,可以开启只读权限。

4,启动服务

/usr/local/pgsql/bin/postgres -i -D /usr/local/pgsql/data >/usr/local/pgsql/data/pgs.log 2>&1 &

-D指定数据库路径

>logfile 2>&1日志文件

&后台运行

5,创建数据库

/usr/local/pgsql/bin/createdb test

6,登录DB test

/usr/local/pgsql/bin/psql test

7,关闭数据库服务

pg_ctl stop -D /usr/local/pgsql/data -m fast

 

posted @ 2019-07-29 01:23  Ryan_Wo  阅读(367)  评论(0编辑  收藏  举报