日期:2013-11-27  浏览次数:20501 次


 FreeBSD下安装PostgreSQL老手教程


 作者: heiyeluren
 QQ群: 5415735 (FreeBSD安装维护群)
 日期: 2004/9/17
 -- 特别感激QQ群好友阿南,本文在他的耐心指点下才产生 --

PostgreSQL是一个开源的数据库管理系统,PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS), 也是目前功用最强大,特性最丰富和最复杂的自在软件数据库系统。它的很多特性正是当今许多商业数据库的前身,有些特性甚至连商业数据库都不具备。 绝对MySQL来讲,PostgreSQL是个非常彻底的有众多黑客所开发的开源程序,目前它是RedHat等Linux操作系统上的标配。 :-)

今天我们就来说说PostgreSQL在FreeBSD平台上的安装过程,没有什么复杂的,只是我这两天安装过程的一个总结,希望能够安装的老手一个提示。( 我们使用的FreeBSD系统是5.2.1版,其他安装平台应该类似,我们以下安装PostgreSQL全部手工,你也可以使用ports)

首先去PostgreSQL的官方FTP服务器上把安装程序下载回来,我使用的版本是 7.4.5 ,大小是11.9MB。(毕竟是源代码,不是很大,呵呵)
下载地址: ftp://ftp.postgresql.org/pub/v7.4.5/postgresql-7.4.5.tar.gz
下载回来当前,我们放到 /usr/src 目录下,首先把程序解压:

# tar zxvf postgresql-7.4.5.tar.gz

解压后生成postgresql-7.4.5目录,进入目录:

# cd postgresql-7.4.5

配置程序和安装目录:

# ./configure --prefix=/usr/local/pgsql

我们的安装程序需求使用gmake而不是使用make,所以我们要检查我们的系统有没有gmake:

#  gamke
gmake: Command not found.

看来我们的系统没有安装gmake,所以我们要先安装gmake,我们就采用FreeBSD的特长ports来安装,:(如果你的系统安装了gmake就继续安装PostgreSQl)

# whereis gmake   # 先找找我们的gmake的ports在哪里
gmake: /usr/ports/devel/gmake # 哦,在这里呀,呵呵
# cd /usr/ports/devel/gmake
# make install   # 呵呵,我们开始ports了。。。

普通等十几分钟就行了,我等了十二分钟,依据网速等的不同。

安装好gamke,我们就能够在/usr/local/bin里面找到它:

# ls -l /usr/local/bin/gamke
-r-xr-xr-x  1 root  wheel  144196 Sep 17 11:59 /usr/local/bin/gmake

然后我们就能够使用gmake继续来安装我们的PostgreSQL了,当然,你也能够先把gmake安装好然后再进行PostgreSQl的安装,我们继续:

# cd /usr/src/postgresql-7.4.5      # 进入PostgreSQL的安装目录
# /usr/local/bin/gmake                  # 执行gmake来编译
# /usr/local/bin/gmake install        # 进行安装,程序将安装到/usr/local/pgsql目录下

如果上面操作出错的话,请按照安装步骤检查你能否操作正确。
由于运转PostgreSQL为了安全考虑不能使用root用户,所以我们要建立一个用户来专门运转PostgreSQL:

# pw user add postgres                  # 添加一个名为postgres的用户
# mkdir /usr/local/pgsql/data           # 新建一个用来存放数据库的文件夹

为了让postgres能够完全控制data目录,我们设置权限:

# chown postgres /usr/local/pgsql/data

设置权限后,我们就切换到 postgres用户:

# su postgres

再初始话数据库:

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

呵呵,如果到这里没有错的话,我们的PostgreSQL基本上就安装好了,我们就启动PostgreSQL:

$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data & # 启动PostgreSQL

$ LOG:  could not create socket for statistics collector: Protocol not supported
LOG:  database system was shut down at 2004-09-17 14:20:52 CST
LOG:  checkpoint record is at 0/9B6E1C
LOG:  redo record is at 0/9B6E1C; undo record is at 0/0; shutdown TRUE
LOG:  next transaction ID: 541; next OID: 17143
LOG:  database system is ready

这时候程序就停在这里了,由于程序曾经启动了,不能结束当前的程序,否则数据库会终止运转,这时候我们再另开一个终端以postgres用户

登陆后查看进程:

$ top

 PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
 891 postgres  96    0 13508K  2708K select   0:00  0.00%  0.00% postgres

如果看到上面类似的进程,那么我们的PostgreSQL就启动成功,能够使用了。

最后再建立一个数据库:

$ /usr/local/pgsql/bin/createdb test           # 建立一个数据库test
CREATE DATABASE

创建数据库成功后,就能够通过PostgreSQL的客户端连接过去:

$ /usr/local/pgsql/bin/psql test

Welcome to psql 7.4.5, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands