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)即可进入维护界面。我们必
网友评论:
- · Oracle 8i在Redhat7.2下安装手册
- · 设计LDAP目录树
- · ORACLE应用经验(5)-表空间
- · Oracle 8(8.0.5)标准版安装指南
- · Mysql存取权限系统
- · mysql 管理:mysql 运行权限
- · 为什么ODBC不是Linux的一个标准特征?
- · RedHat7.0下Oracle 8.1.6安装实例
- · Informix SQL 语句详解(1)
- · Sybase数据库的碎片整理
- · MySQL和Postgres的比较
- · Apache+php3+PostgreSQL
- · 在Linux机器上安装运行Oracle(一)
- · MySQL 文件系统
- · PostgreSQL 6 综述

投稿指南


