Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299663
  • 博文数量: 76
  • 博客积分: 1662
  • 博客等级: 上尉
  • 技术积分: 764
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-25 17:04
个人简介

辛勤的鸟儿总能找到虫子....

文章分类

全部博文(76)

文章存档

2017年(1)

2013年(4)

2012年(5)

2011年(4)

2010年(32)

2009年(23)

2008年(7)

分类:

2010-02-01 19:42:17

  FreeBSDpostgresql的安装
由于工作需要,今天,我在自己的FreeBSD7.0下安装了一个数据库:postgreSQL.害怕以后忘记,并希望能给想安装postgresql的初学者提供一个思路和实例.好了,废话不说了,开始安装了:
  PostgreSQL是一个开源的数据库管理系统,PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。它的很多特性正是当今许多商业数据库的前身,有些特性甚至连商业数据库都不具备。 相对MySQL来讲,PostgreSQL是个非常彻底的有众多黑客所开发的开源程序,目前它是RedHatLinux操作系统上的标配.要想在FreeBSD下安装postgreSQL
总共有2中方法(其实FreeBSD下的软件安装基本上都是这二种方法).
1.利用port:
  这种方法比较简单,而且也很容易.具体的是在/usr/port目录下找到postgresql的位置.我的freebsd下postgresql的具体位置是:/usr/port/distfiles/postgresql(具体查找的办法是:进入到port目录下使用whereis命令: whereis postgresql).
./conifgure && make &&make install
2.利用源代码安装:
我是使用这种方法来安装的,所以主要讲这种安装方法:
1.从官方网站下载源代码(下载地址: ftp://ftp.postgresql.org/).
2 .下载回来以后,我把它放到 /usr/src 目录下,接下来就是安装的具体步骤了(我下载的版本是:postgresql 8.4.0 具体的压缩文件是:postgresql-8.4.0.tar.gz):
su root
解压压缩文件:
# tar -zxvf postgresql-8.4.0.tar.gz
解压后生成postgresql-8.4.0目录,进入目录:
# cd postgresql-8.4.0
配置程序和安装目录:
# ./configure --prefix=/usr/local/pgsql (默认也是这个位置.)

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

#  gamke
gmake: Command not found.
看来我们的系统没有安装gmake,所以我们要先安装gmake,我们就采用FreeBSD的专长ports来安装,:(如果你的系统安装了gmake就继续安装PostgreSQl
# whereis gmake   # 先找找我们的gmakeports在哪里
gmake: /usr/ports/devel/gmake # 哦,在这里呀,呵呵
# cd /usr/ports/devel/gmake
# make install   # 呵呵,我们开始ports了。。。
一般等十几分钟就行了,我等了十二分钟,根据网速等的不同。
另外一种方式利用sysinstall命令进行图形化安装,主要的步骤是:
sysinstall 2.configure 3.packages 4.cd/dvd 5.devel 6.gmake
接着就是点击安装.
安装好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-8.4.0     # 进入PostgreSQL的安装目录
# /usr/local/bin/gmake                  # 执行gmake来编译
# /usr/local/bin/gmake install        # 进行安装,程序将安装到/usr/local/postgreSQL目录下
如果上面操作出错的话,请按照安装步骤检查你是否操作正确。
因为运行PostgreSQL为了安全考虑不能使用root用户,所以我们要建立一个用户来专门运行PostgreSQL:
# pw user add postgres          # 添加一个名为chenweiming的用户
(# pw user add postgres命令后面加上 –h 0 # pw user add postgres –h 0 这样可以为用户加密码.执行的结果会提示你输入密码.这里需要注意一下利用这个命令建立的用户postgres在/home/目录下是没有文件夹的需要自己建立一个名字是"postgres"文件夹,然后用chown命令设置权限为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/postgres -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 chenweiming  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 8.4.0, 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手册
安装总结:
1.在启动数据库的时候,一般都会把他重定向到一个具体的文件:
usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data > /home/postgres/postgres.log 2>&1 & (postgres.log是自己建立的文件)
2.需要在/home/postgres目录下建立一个文件存放history:touch .psql_history 并且用chown postgres .psql_history将这个文件的权限设置为postgres.这样就能记录每次登录的记录.


阅读(963) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~