Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1322732
  • 博文数量: 334
  • 博客积分: 10302
  • 博客等级: 上将
  • 技术积分: 2986
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-12 10:17
文章分类

全部博文(334)

文章存档

2013年(1)

2012年(9)

2011年(4)

2010年(10)

2009年(24)

2008年(64)

2007年(72)

2006年(150)

我的朋友

分类:

2008-04-21 04:16:39

首先去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手册。

/etc/rc.local文件的自启动脚本
if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postmaster ]; then
    su - postgres -c '/usr/local/pgsql/bin/pg_ctl start -l /var/pgsql/log -s'
    echo -n ' postgresql'
fi

把其中的日志路径“/var/pgsql/”改为实际系统中的路径如“/usr/local/pgsql/”即可。

参考资料:
PostgreSQL中文手册
PostgreSQl中文网站       
 
阅读(811) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~