用户管理  |   用户注册                                                                                    首 页软件下载教程中心办公指南flash动画文档下载办公公文

www.4oa.com - 中科软件园

投递文章 用户管理 投稿指南 资讯通告 :
站内搜索: 您的位置中科软件园 > 教程中心 > 操作系统 > Linux > 数据库 > 教程内容

在Linux上应用PostgreSQL

2005-5-25 7:53:18  来源:本站整理  作者:不详 【 投递文章
内容提要:PostgreSQL是一个在Unix世界被广泛应用的免费数据库管理系统(DBMS),无论是它支持的特性,还是它的性能都可以和其它的商业数据库一比高低。由于它采用C语言编写,在不同的Unix之间互相移植...
PostgreSQL是一个在Unix世界被广泛应用的免费数据库管理系统(DBMS),无论是它支持的特性,还是它的性能都可以和其它的商业数据库一比高低。由于它采用C语言编写,在不同的Unix之间互相移植非常方便,于是PostgreSQL能够在众多的平台上运行,包括:Solaris、AIX、SCO Unix、HP Unix、Linux、FreeBSD等。

   PostgreSQL起源于美国加州大学伯克莱分校计算机科学系的一个数据库研究项目——Postgres。从最初的雏形到现在,PostgreSQL已经发展15年了,新的特性、新的组织方法不断被加进来,其中最重要的要算它对SQL-92标准的完全支持及扩展。目前,PostgreSQL已离开校园,由一个全球性的核心开发队伍维护,并走上了开放源代码的道路。

   我现在就介绍一下在RedHat Linux6.1上如何应用 PostgreSQL。

   Linux上的安装

   在RedHat Linux6.1的光盘上已经带有PostgreSQL的RPM包,安装很方便。这些RPM包有:

   postgresql-6.5.2-1.i386.rpm ①

   postgresql-server-6.5.2-1.i386.rpm ②

   这两个是最基本的,一定要安装。

   postgresql-devel-6.5.2-1.i386.rpm ③

   postgresql-jdbc-6.5.2-1.i386.rpm ④

   postgresql-odbc-6.5.2-1.i386.rpm ⑤

   postgresql-perl-6.5.2-1.i386.rpm ⑥

   postgresql-python-6.5.2-1.i386.rpm ⑦

   postgresql-tcl-6.5.2-1.i386.rpm ⑧

   如果你要在Linux上开发基于PostgreSQL的应用,那么你就还得安装以上6项。④和⑤顾名思义是(Linux平台的)JDBC和ODBC驱动;⑥是PERL的接口;⑦和⑧是用python和tcl写的GUI数据库前端访问工具,工作在X Window下,初学者肯定会喜欢用。

   postgresql-test-6.5.2-1.i386.rpm ⑨

   这是提供给用户测试PostgreSQL运行是否正常的样例,一般可以不安装。

   如果没有RPM包,我们就要先进行编译才能继续安装,具体步骤请参阅有关的文档,这里限于篇幅不再详细介绍。

   准备创建数据库

   用rpm -i postgresql-xxxx-xxxx-x.i386.rpm命令安装所有需要的文件后,我们便要为创建数据库作准备了。检查一下目录:

   /usr/lib/pgsql/目录里面有数据库的模板、样例文件;

   /var/lib/pgsql/这是PostgreSQL默认存放数据库的目录,由于我们不用它存放数据,所以不用理会。

   接下来的这一步很重要——创建数据库拥有者。由于数据库监听进程postmaster(后面将会详细说明)不能由root用户启动,否则会存在安全漏洞,所以我们必须创建一个用户(暂且称为数据库拥有者,以dbms表示),由它来启动postmaster:

   #useradd dbms

   #passwd dbms

   一般我们会把同一个数据库的文件放在一个统一的目录下,例如/database:

   #mkdir /database

   别忘了赋予dbms对/database的全部权限:

   #chown dbms.dbms /database

   为了更好地进行维护、备份,建议在硬盘单独划分一个区用来专门存放/database目录的内容(也就是整个数据库的数据及配置文件),我也是这样做的。在我的硬盘里,划分了一个500MB的分区(/dev/hda10),在赋予权限之前修改/etc/fstab文件。仿照其它硬盘分区加入类似下面的一项:

   /dev/hda10   /database       ext2  defaults  1 2

   当然,别忘了要用mkfs命令把/dev/hda10格式化为ext2类型的分区。

   好,重启机器,在新配置生效后(可用mount查看)再赋予dbms对/database的权限。然后用dbms登录。

   运行数据库初始化程序,我们需要告诉它至少两样东西:一样是原始模板的目录(用“-l”指出,在这里是/usr/lib/pgsql/);另一样是存放初始化后的数据库文件的目录(用“-r”指出,在这里是/database/):

   $initdb -r /database/ -l /usr/lib/pgsql/

   应用PostgreSQL





   如无意外,初始化成功后我们就可以建立自己的数据库了。首先要知道,数据库用户是这样访问数据的:


   所以先要启动postmaster:

   $postmaster -i -D/database&

   “-i”选项允许从网络上访问数据库,如果要开发和使用Client/Server模式的应用程序,一定要加这个参数。“-D”指出数据库目录。“&"是以后台方式运行监听进程。

   现在,我们创建一个数据库,假定叫“mydb”:

   $createdb mydb

   然后启动前端访问工具:

   $psql mydb

   这时会出现提示符:

   mydb=>

   我们便可以键入SQL语句构造数据库了。例如以下命令建立一张名叫“test”的表,它由三个字段(id、name、income)组成:

   mydb=>create table test (id int2, name varchar(10), income int4);

   以上操作如果没问题就表明PostgreSQL数据库已经创建成功。但还有一些问题需要解决,例如我们并不想让任何人在任何地方都能访问任何数据库文件,这就需要建立授权/鉴别机制来分辨哪些是合法用户的合法请求、哪些不是。

   刚完成安装的PostgreSQL默认只有一个合法超级用户——dbms,只有它才能写服务器上的/database目录,但是也由于dbms一开始就存在,所以鉴别机制对它不起作用。只要它喜欢,可以访问任何数据库(因为dbms可以修改鉴别机制的配置文件,下面会提到)。正如Unix系统的root用户,它可以修改任何文件的权限、可以修改存放用户口令的shadow文件。所以当完成安装后,我们就要创建新的管理者,暂且称它为dba。

   由于用字符界面的psql创建dba比较烦琐,所以最好用GUI的pgaccess,这需要我们成功安装RPM包⑧。完成后进入系统目录:

   #cd /usr/lib/pgsql/pgaccess

   把可执行属性赋予main.tcl:

   #chmod +x main.tcl

   然后便可以启动X Window,打开一个xterm窗口,运行pgaccess:

   $./main.tcl

   我们只须键入数据库名字(mydb)即可进入维护界面。我们必

[1] [2]  下一页

(评论内容只代表网友观点,与本站立场无关!)[ 全部评论 ]

网友评论:

    用户名:

    评   分:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

                 (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -有事点这里