王朝网络
分享
 
 
 

完美的数据库PostgreSQL7.4的安装

王朝mssql·作者佚名  2008-05-19
宽屏版  字体: |||超大  

本章讲述了如何通过源代码安装PostgreSQL 7.4数据库,并且讲述了安装过程中的一些问题。同时讲述了在安装完成之后初始化数据库的安装与启动和停止PostgreSQL的方法。

1系统需求

在这里首先描述了安装PostgreSQL数据库服务器需要的环境,PostgreSQL数据库的安装遵守了GNU auto Tools的标准,在从源码安装的过程中,配置脚本会检查系统环境是否符合数据库的安装要求。作为一个最基本的安装,我们需要下面列出的工具或者程序库。

Gnu make, 其他的make工具可能在编译安装的过程中产生问题,在通常情况下,可能gnu make工具被改名为make,而不是gmake,查询你系统的文档来看看是否符合这个要求,另外推荐gmake的版本要高于3.76.1,通过gmake --version可以检查gmake工具的版本

与ISO/ANSI 标准兼容的C语言编译器,如果需要PostgreSQL的C++开发库也被编译安装,需要C++编译器,gcc编译器就可以满足这个需求。

Gzip和tar工具,保证用来解压缩你的源代码包,这两个工具在Linux系统上都是缺省被安装的,如果你的系统上没有这两个工具,可以从相关的网站上找到源代码或者已经按照某个Linux/unix编译好的二进制包。

GNU的readline工具,在缺省情况下,PostgreSQL回使用readline工具来行编辑和命令历史的检索工作,当然你也可以禁止使用readline,在你执行configure脚本的时候使用--without-readline来忽略readline的使用。不过不推荐这样使用。

如果你需要编译安装其他的一些特性,比如SSL的支持,或者你需要PostgreSQL与Java语言的开发接口等,你需要一些相关的工具,这些部分将在讲述到相关主题的时候加以讲解。这里只描述最基本的安装,包括C++的编程接口的支持。

下面描述一下笔者写作本书的时候使用的平台:

系统平台:Redhat Linux 9.0

glibc版本:2.3.2

gcc编译器版本:3.3.2

J2SE版本:1.4.2

2 PostgreSQL的安装

PostgreSQL的安装和大部分的Unix下的工具相似,执行的都是configure, make, make install的步骤,与其他大部分软件的安装过程不同的可能是在make install之后我们需要执行一些特殊的配置过程这样才能使PostgreSQL数据库服务器运行起来。

在你得到PostgreSQL的源代码包之后,首先放到一个目录下面,这里用$HOME/src目录来作说明。

首先进入到$HOME/src目录,执行下面的命令将源代码解压缩。

cd $HOME/src

tar zxvf postgresql-7.4.tar.gz

如果你下载的是.bz2源代码包,那么你的系统上要有bzip2工具,然后可以执行

tar jxvf postgresql-7.4.tar.gz (在不同的系统上,可能会有所不同,请查阅系统的文档)

解压缩之后,会得到postgresql-7.4的目录,然后进入这个目录,执行配置过程。

cd postgresql-7.4

./configure --prefix=/opt/pgsql --disable-debug ?enable-thread-safety

如果你需要编译PostgreSQL的JDBC支持的话,你必须拥有一个JDK, Apache Ant工具,设定了JAVA_HOME和ANT_HOME环境变量,在笔者的系统上,这两个变量分别是

JAVA_HOME=/opt/j2sdk

ANT_HOME=/opt/ant

然后再配置的时候使用--with-java来配置,如果设置正确的话,PostgreSQL的JDBC驱动将出现在$prefix/share/java下面。

PostgreSQL的配置脚本可以接受很多的参数,这些参数用来告诉configure脚本哪些特性要编译,哪些特性不需要,具体的参数信息的说明可以通过执行./configure --help来得到。

下面解释一下上面配置命令的参数的意义。

--prefix=/opt/pgsql 用来决定编译后的PostgreSQL程序安装的根目录,当make完成之后,make install将把程序安装到/opt/pgsql下面,并在下面建立相应的目录来存放程序的可执行文件,开发库,头文件等目录,象下面这样。

bin doc include lib man share

--disable-debug选项告诉configure脚本在执行编译的时候不要编译调试信息,当然这个选项不是控制是否生成用来进行代码跟踪的调试信息,而是控制在程序执行过程中不要输出那些用来调试的信息。这样可以提高程序的运行效率。如果想编译一个优化的不包括用来进行代码跟踪的调试信息的版本,你需要在执行你的configure脚本的时候,设定你的CFLAGS,CXXFLAGS,CPPFLAGS等环境变量,使其不包括-g选项。而使用-O2,或者-O3来代替。

--enable-thread-safe 选项告诉configure脚本用来编译线程安全的客户库。

当配置脚本执行完之后,我们就可以执行make来真正的构建PostgreSQL数据库服务器。

执行make。

根据系统的配置和选择特性的多少,这个过程的时间可能会有很大的差别。当make结束之后,如果出现了下面的内容,那么表示你选择的特性已经被正确的编译完成了。

All of PostgreSQL successfully made. Ready to install.

接下来的事情就是make install,注意执行make install的时候,你需要具有root的权限。当完成之后会出现PostgreSQL installation complete.提示信息,这表示我们的安装已经成功的完成了,察看你安装目录下面的目录结构可以看到bin doc include lib man share这样的目录,在bin的下面,存放了用来执行一些PostgreSQL服务或者相关操作的命令,doc下面安装的是随PostgreSQL发布的文档,使用的是html格式,从7.4版本开始,PostgreSQL的文档被合并到了一个大的文档,而不是以前那种分成各种不同手册的形式。include下面包含的是用C/C++开发PostgreSQL应用程序要使用的头文件,lib下面存放的是运行PostgreSQL数据库服务器或者相关工具所需要的库文件。man下面是相关命令或者工具的手册页,share下面存放的是一些公共的数据,如果你编译了PostgreSQL的JDBC支持,那么这里面就会有一个java目录,里面会有postgresql.jar文件,是PostgreSQL的JDBC驱动程序。

3 PostgreSQL的初始配置

在成功的安装了数据库之后,我们需要作一些初始化工作,这样我们才能正常的启动数据库服务器,开发我们的数据库应用。

首先我们要设置PATH,因为我们的程序没有安装到已有的PATH的下面,所以我们需要添加$prefix/bin到系统的PATH中,这样我们的程序就可以直接使用相应的文件。但是光添加了路径,我们的程序在运行的时候还不能找到所需要的库,所以我们需要修改系统查找的库路径的信息。在Linux下面,这可以通过两种方式来实现,一是修改环境变量LD_LIBRARY_PATH,这样我们就可以在/etc/profile里面添加一句export LD_LIBRARY_PATH=/opt/pgsql/lib:$LD_LIBRARY_PATH。或者我们可以使用另外一种方式,将PostgreSQL的库路径添加到/etc/ld.so.conf文件里面,然后执行一下ldconfig命令,这样系统就会创建在这个文件总所有路径下面的库的信息缓存,当系统需要寻找系统的库的时候,会首先找到这个缓存,然后就可以定位到正确的路径来装载所需的运行库。

另外,如果我们希望能使用man来查询手册页,那么还需要设置MANPATH这个环境变量,这样我们就可以直接通过man psql来查询psql这个命令怎么使用了。你可以在系统级的脚本上修改这个环境变量,或者也可以在你自己用户目录下的启动脚本来修改这个环境变量,使用下面的命令就可以了

export MANPATH=/opt/pgsql/man:$MANPATH

PostgreSQL建议用户使用一个单独的用户帐号来运行PostgreSQL的服务器,一般推荐postgres用户,因为在很多脚本里面都使用了这个用户帐号。所以接下来我们要创建postgres用户。根据你系统的文档找出合适的添加用户的方法。下面使用Redhat Linux9.0中使用的命令来解释。(注意下面的命令在root用户权限下执行)

/usr/sbin/useradd postgres

passwd postgres

设置postgres用户的密码,在后面讲到启动和停止数据库服务器的时候会使用到这个密码。所以一定要记住。在你修改了数据库的某些配置之后,如果你想重新启动数据库,启动脚本会问你这个密码。

一般情况下我们希望PostgreSQL能把数据库文件放在一个独立的位置,而不是postgres用户的主目录。(当然我们也可以让他们使用同一个目录)。接下来我们创建一个目录用来存放PostgreSQL的数据库文件和PostgreSQL服务起运行时所产生的文件,在下面的例子中我们把这个目录放到/var/lib下面,并且命名为pgsql/data,执行下面的命令来创建这个目录

mkdir -p /var/lib/pgsql/data

创建了目录之后,因为这个目录要被postgres用户使用,所以我们改变这个目录的权限,把它的所属权改为postgres,执行命令chown postgres /var/lib/pgsql/data。

在完成了上面的步骤之后,我们就可以执行initdb命令来初始化PostgreSQL服务器的设置,执行下面的命令。

su - postgres //切换到postgres用户来执行下面的命令。

initdb -D /var/lib/pgsql/data

输出结果如下:

The files belonging to this database system will be owned by user "postgres".

This user must also own the server process.

The database cluster will be initialized with locale zh_CN.GB18030.

fixing permissions on existing directory /var/lib/pgsql/data/... ok

creating directory /var/lib/pgsql/data//base... ok

creating directory /var/lib/pgsql/data//global... ok

creating directory /var/lib/pgsql/data//pg_xlog... ok

creating directory /var/lib/pgsql/data//pg_clog... ok

selecting default max_connections... 100

selecting default shared_buffers... 1000

creating configurat

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有