下载地址 (HTTP): http://www.ca.postgresql.org/ftpsite/v7.3.2/postgresql-7.3.2.tar.gz 下载地址 (FTP): ftp://ftp8.us.postgresql.org/pub/pgsql/source/v7.3.2/postgresql-7.3.2.tar.gz 版本: 7.3.2 包的大小: 11 MB 估计所需硬盘空间: 68 MB |
PostgreSQL包中包括PostgreSQL RDBMS,客户端工具以及捆绑的语言。
注: 捆绑的C++和ODBC已经从发布的源代码中删去。它们可以从PostgreSQL网站获得:http://gborg.postgresql.org。
PostgreSQL 依赖于: readline-4.3 |
用下面的命令安装PostgreSQL:
./configure --prefix=/usr && make && make install |
用下面的命令初始化数据库簇:
mkdir -p /var/pgsql/data && useradd -d /var/pgsql/data postgres && chown postgres /var/pgsql/data && su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' |
用下面的命令启动数据库服务器:
su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' |
现在我们可以建立一个数据库,检查一下安装是否成功:
su - postgres -c '/usr/bin/createdb test' echo "create table t1 ( name varchar(20), state_province varchar(20) );" \ | (su - postgres -c '/usr/bin/psql test ') echo "insert into t1 values ('Billy', 'NewYork');" \ | (su - postgres -c '/usr/bin/psql test ') echo "insert into t1 values ('Evanidus', 'Quebec');" \ | (su - postgres -c '/usr/bin/psql test ') echo "insert into t1 values ('Jesse', 'Ontario');" \ | (su - postgres -c '/usr/bin/psql test ') echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test ') |
useradd -d /var/pgsql/data postgres : 添加一个非特权用户用来运行数据库服务器。用root来运行服务器是很危险的,甚至不能正常工作。
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' : 初始化数据库表空间。root不能执行这个命令。
su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' : 启动数据库服务器。必须用postgres用户来执行这个命令。
createdb test, create table t1 , insert into t1 values..., select * from t1 : 建立一个数据库,向其中添加一张表,插入几行数据并查询。用来检查安装好的数据库是否正常工作。
$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf
将环境变量PGDATA的值设置成包含簇的目录名来区分不同的数据库簇。 每一个PGDATA/目录中都包含上面三个配置文件。 这些文件的具体格式和可供设置的选项参见下面的网页:
file:///usr/share/doc/postgresql/html/tutorial.html
postgres的init.d脚本
用下面的命令创建postgres启动脚本:
cat > /etc/rc.d/init.d/postgres << "EOF" #!/bin/bash # Begin $rc_base/init.d/postgres # Based on sysklogd script from LFS-3.1 and earlier. # Rewritten by Gerard Beekmans - [email protected] source /etc/sysconfig/rc source $rc_functions case "$1" in start) echo "Starting PostgreSQL daemon..." su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \ -l /var/pgsql/data/logfile -o "-i" ' evaluate_retval ;; stop) echo "Stopping PostgreSQL daemon..." /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data evaluate_retval ;; restart) $0 stop sleep 1 $0 start ;; status) /usr/bin/pg_ctl status -D /var/pgsql/data ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac # End $rc_base/init.d/ EOF chmod 755 /etc/rc.d/init.d/postgres |
用下面的命令在相应的rc.d目录中创建该脚本的符号链接:
cd /etc/rc.d/init.d && ln -sf ../init.d/postgres ../rc0.d/K26postgres && ln -sf ../init.d/postgres ../rc1.d/K26postgres && ln -sf ../init.d/postgres ../rc2.d/K26postgres && ln -sf ../init.d/postgres ../rc3.d/S34postgres && ln -sf ../init.d/postgres ../rc4.d/S34postgres && ln -sf ../init.d/postgres ../rc5.d/S34postgres && ln -sf ../init.d/postgres ../rc6.d/K26postgres |
PostgreSQL RDBMS包括 createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_ctl, pg_dump, pg_dumpall, pg_passwd, pg_restore, pgaccess, pgtclsh, pgtksh, postgres, postmaster, psql以及 vacuumdb.