$ gmake all
在編譯結束後將顯示以下資訊:
All of PostgreSQL is successfully made. Ready to install.
安裝:
$ gmake install
正常完成後,PostgreSQl的執行檔案和庫檔案等將被安裝到/usr/local/pgsql目錄下。
安裝附帶文檔:
$ gmake install-man
$ cd /usr/local/src/postgresql-v6.4/doc
$ make install
至此PostgreSQL的編譯安裝已經完成,下面開始初期設定。
1.4 初期設定
設定環境變數:
如使用的shell為bash, 則在.bashrc中添加以下命令:
PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPTH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
然後執行 source ~/.bashrc
如使用的shell為csh/tcsh則在.cshrc中添加以下命令:
setenv PATH="$PATH":/usr/local/pgsql/bin
setenv POSTGRES_HOME=/usr/local/pgsql
setenv PGLIB=$POSTGRES_HOME/lib
setenv PGDATA=$POSTGRES_HOME/data
setenv MANPATH="$MANPTH":$POSTGRES_HOME/man
setenv LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
然後執行 source ~/.cshrc
以上環境變數是所有使用資料庫的使用者都需要設定的。
資料庫目錄的初始化:
$ initdb
可以使用的參數:
--pgdata=/pgsql/db 指定資料庫目錄,預設使用環境變數PGDATA指定的位置
--pgencoding=EUC_CN 指定資料庫的字元編碼,預設使用configure時指定的編碼。
需要注意的是執行initdb的使用者將擁有所建資料庫目錄的管理權。
使用以下命令啟動PostgreSQL:
$ postmaster -S
運行測試程式:
$ cd test/regression
$ gmake all runtest
如測試程式能正常運行則說明PostgreSQL能正常運行。
為了讓 PostgreSQL在系統啟動時能自動啟動,需作以下變更:
首先以root登入
$ su
Linux: 在/etc/rc.d/rc.local中追加以下內容:
POSTGRESDIR=/usr/local/pgsql
if [ -x $POSTGRESDIR/bin/postmaster -a -d $POSTGRESDIR/data ];then
rm -f /tmp/s.PGSQL.5432
su - postgres -c "postmaster -S -i"
echo -n 'postmaster'
fi
FreeBSD: 在/usr/local/etc/rc.d中建立名為pgsql.sh的檔案,內容為:
#! /bin/sh
POSTGRESDIR=/usr/local/pgsql
if [ -x $POSTGRESDIR/bin/postmaster -a -d $POSTGRESDIR/data ];then
rm -f /tmp/s.PGSQL.5432
su - postgres -c "postmaster -S -i"
echo -n 'postmaster'
fi
修改pgsql.sh檔案的許可權:
# chmod 755 pgsql.sh
現在PostgreSQL的安裝和設定基本已經完成了,但是目前為止能使用資料庫的使用者只有
postgres。
為使其他使用者可以使用資料庫,需要登入資料庫使用者和產生使用者資料。
例如通過Web伺服器Apache進行查詢的使用者,使用者名稱為nobody:
% createuser nobody
Enter user's postgres ID or RETURN to use unix user ID: 1000 ->1000
Is user "nobody" allowed to create dataase(y/n)n
Is user "nobody" allowed to add users?(y/n)n
createuser: nobody was successfully added
刪除使用者可以使用命令destroyuser 使用者名稱
PostgreSQL可以同時管理多個資料庫(但資料庫之間不能進行join等操作)。建立資料庫
:
$ createdb 資料庫名
建立的資料庫將被放在/usr/local/pgsql/data/base的同名目錄下(環境變數PGDATA指定