首先去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手册。
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中文网站