电脑技术学习

FreeBSD下安装PostgreSQL新手教程

dn001
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
? for help on internal slash commands
g or terminate with semicolon to execute query
q to quit

test=#

最后的,test=#是终端提示符,那么你就能够这里管理PostgreSQL和执行SQL语句,具体请参考PostgreSQL手册。

参考资料:
PostgreSQL中文手册 http://www.pgsqldb.org/pgsqldoc-7.4/index.HTML
PostgreSQl中文网站 http://www.pgsqldb.org

标签: