当前位置:Linux教程 - Linux - 在Linux上建立PostgreSQL数据库服务器

在Linux上建立PostgreSQL数据库服务器

作者: Scott Lowe MCSE(TechRepublic)
日期: 2002年01月10日

在上一篇文章中,我们讨论了在Linux上非常流行的MySQL数据库服务器的使用方法
。在这篇文章中,我们将关注另一个选择,名为PostgreSQL的开放源码数据库。尽管MySQL是一个快速,强大和相当简单的关系型数据库管理系统,但PostgreSQL更加具有综合性,并为这种复杂性牺牲了一些速度。

如果你已经习惯于使用包含各种图标和快捷方式的界面,那么PostgreSQL非常适合你,尽管MySQL的4版本也提供类似的功能。为了在这篇文章中能够向你清楚的说明怎样建立PostgreSQL,我使用以下版本的软件: Red Hat Linux 7.1 PostgreSQL 7.1.3

准备安装

在开始之前,你需要获得这些软件。你可以下载最新的7.1.3版本。将PostgreSQL这个源码程序下载下来之后,应该把它放在Linux服务器的/usr/local目录下。如果你把它放在其他地方,请注明并修改相应的路径指示。

PostgreSQL并不以根权限运行。这源于开发者的安全设计思想。因此,你需要一个用户账号来建立运行PostgreSQL进程。在这篇文章中我们使用postgres这个用户,同时还将创建一个名为postgres的组。

当然,如果想创建这些账号,你需要以超级用户的身份登录(通常是根权限)。为了在Linux服务器上创建这个postgres用户组,我将在命令行中执行groupadd postgres。下一步,创建用户并加入这个组,命令为useradd postgres –g postgres。

在正式开始安装PostgreSQL之前,我们还需要做两件事情。首先,我们将自己来创建将要用到的目录并在postgres用户中指定所有者。这样就可以避免权限不清所带来的问题。

首先,创建两个目录: mkdir /usr/local/pgsql mkdir /usr/local/postgresql-7.1.3

然后,指定这两个目录在早先创建的postgres用户中的所有者: chown postgres.postgres /usr/local/pgsql chown postgres.postgres /usr/local/postgresql-7.1.3

现在让我们将这个版本解压以便可以安装它。首先,用su postgres命令改变postgres用户。然后,用cd /usr/local命令转到/usr/local目录下并用下列命令将下载的文件解压: gunzip –dc postgresql-7.1.3.tar.gz | tar xvf

当列表中的文件解压完成之后,你就会回到命令提示符下,使用cd /usr/local/postgres-7.1.3命令转到相应目录下。

完成之后,就可以开始了

像其他开放源码的程序一样,安装过程的第一步就是安装配置中指定你的操作环境,包括所希望的程序安装路径和特定性能的有效/无效。

为了实现安装的意图,我们要确信软件安装在了/usr/local/pgsql目录下,这是我们先前创建的目录。为了完成这一步,我们使用命令: ./configure --prefix=/usr/local/pgsql

下一步是用先前提供的选项来编译源程序。用命令行实现这一点。完成之后,你可以通过键入安装时的命令来安装二进制文件。

稍等,还有更多的

在你开始启动数据库之前,PostgreSQL也有一些环境变量需要设置,你应该让PostgreSQL知道在哪儿可以找到它的数据文件,共享库,应用程序文件,和操作记录
。在我的RedHat Linux 7.1服务器上,我喜欢通过修改/home/postgres目录下的.bash_profile文件来实现这一点。由于这个文件是在登录时被查看,所以可以在环境中为postgres用户添加合适的变量。使用你最喜欢的文本编辑器来完成以下的步骤(我用的是pico)。

用下面的命令打开并编辑.bash_profile文件: pico /home/postgres/.bash_profile

然后,在文件中用户名一行前添加下列行: PGLIB=/usr/local/pgsql/lib PGDATA=/usr/local/pgsql/data PATH=$PATH:/usr/local/pgsql/bin MANPATH=$MANPATH:/usr/local/pgsql/man export PGLIB PGDATA PATH MANPATH

保存文件并用下面的命令创建目录/usr/local/pgsql/pgdata: mkdir /usr/local/pgsql/data

如果postgres用户对整个/usr/local/pgsql目录拥有完全权限的话,你就无需使用根用户。这个目录将存储所有你的数据库文件。

启动你的(数据库)引擎

在可以正式启动数据库引擎之前,你需要通过一个初始化命令对不同的PostgreSQL数据库进行初始化。如果想实现这个初始化,使用命令cd /usr/local/pgsql/bin并且键入./initdb,然后按[Enter]。你将得到许多状态信息然后回到命令行提示符下。

在这时,你可以用以下命令开启Postgres postmaster: /usr/local/pgsql/bin/postmaster –i -D /usr/local/pgsql/data &

这将启动PostgreSQL并在/usr/local/pgsql/data目录下运行数据库,可以从互联网上对数据库进行连接(通过参数-i),可以运行于后台(通过参数 &)。你的数据库引擎已经启动并开始准备接受数据。

创建数据库

在这个例子中,我们将创建一个名为mydb的数据库和一个名为mytable的表格,这样可以让你确信一切都正常工作。首先,在命令行中键入createdb mydb。如果PostgreSQL回复CREATED DATABASE,说明已经接受了命令。现在,我们使用psql工具与这个数据库共同工作。键入psql mydb并按[Enter]。这将带你进入PostgreSQL的交互式模式。

如果想在mydb数据库中创建mytable表格,可以按照以下的步骤。请记住这并不是一个真实的表格,只是一个样本罢了: CREATE TABLE mytable ( id varchar(20), name varchar(30));

一旦你完成这些,你将看到一个CREATED信息,说明表格已经创建。现在我们可以在表格中插入一个记录,查看内容,然后退出psql工具: INSERT INTO mytable values (''作家'', ''Scott Lowe'');

现在psql将答复INSERT 18732 1。如果想查看这个表格的内容,键入: SELECT “* FROM MYTABLE;”

你将看到以下的结果:
身份 | 姓名
--------+------------
作家 | Scott Lowe
如果要退出psql工具,键入q并按[Enter]。

总结

这让我们大致了解了在RedHat Linux上PostgreSQL 7.1.3数据库的基本安装过程。我认为你将看到PostgreSQL是一个功能强大的数据库,以其高级的性能完全有能力顺利地运行于多种环境之中。

如果你在安装PostgreSQL时遇到任何问题,我建议你仔细阅读在PostgreSQL的Web站点中的文档。