| 導購 | 订阅 | 在线投稿
分享
 
 
 

PostgreSQL入門,V0.9.3+++

來源:互聯網  2008-05-19 06:25:06  評論

安裝篇

我下載了PostgreSQL7.3.4,是源代碼,保存爲「/opt/lin_app02/tmp/download/PostgreSQL/R1/postgresql-7.3.4.tar.gz」。下載後,我在這個目錄下開了終端(rxvt),執行命令:

代碼:

[root@TFW-RFL40F R1]# tar zxvfp ./postgresql-7.3.4.tar.gz

得到一個目錄「postgresql-7.3.4」。

代碼:

[root@TFW-RFL40F R1]# cd postgresql-7.3.4

[root@TFW-RFL40F postgresql-7.3.4]# ./configure --prefix=/opt/lin_app02/postgres --enable-locale --enable-multibyte --with-perl --with-odbc --with-tcl

......

對上面一步的說明:

./configure

configure不加任何選項,系統將按默認的設置安裝postgresql,查看configre的相關選項可以使用:configure -help

一些最常用的如下:

--prefix=BASEDIR

爲安裝 PostgreSQL 選擇一個不同的基礎路徑。缺省是 /usr/local/pgsql。

--enable-locale

如果你想用本地化支持。

--enable-multibyte

允許使用多字節字符編碼。這個選項主要用于象日語,韓語或中文這樣的語言。

--with-perl

添加 Perl 模塊接口。請注意 Perl 接口將安裝到 Perl 模塊的常用位置(典型的是在 /usr/lib/perl),所以要成功使用這個選項,你必須有 root 權限。

--with-odbc

制作 ODBC 驅動包。

--with-tcl

制作 Tcl/Tk 需要的接口庫和程序,包括 libpgtcl,pgtclsh,和 pgtksh。

這些編譯參數告訴編譯器如何編譯PostgreSQL:

代碼:

[root@TFW-RFL40F postgresql-7.3.4]# make

......

代碼:

[root@TFW-RFL40F postgresql-7.3.4]# make install

......

中間不報錯的話,安裝就完成了。

初始化

創建一個存放數據庫文件的目錄:

代碼:

[root@TFW-RFL40F postgresql-7.3.4]# mkdir /opt/lin_app02/postgre-data

下面要設置環境變量。由于安全原因,PostgreSQL是不讓「root」等特權用戶用的。爲了方便,我就用日常工作的「typhoon」身份管理PostgreSQL,但是建議大家爲管理PostgreSQL新創建一個用戶。爲了方便,我直接修改了「/etc/profile」,但是建議修改個人主目錄下的「.bash_profile」。

我在環境變量文件裏添加了如下內容:

代碼:

########################################

#

PostgreSQL

LD_LIBRARY_PATH=/opt/lin_app02/postgres/lib

export LD_LIBRARY_PATH

PGLIB=/opt/lin_app02/postgres/lib

PGDATA=/opt/lin_app02/postgre-data

PATH=$PATH:/opt/lin_app02/postgres/bin

MANPATH=$MANPATH:/opt/lin_app02/postgres/man

export PGLIB PGDATA PATH MANPATH

########################################

看著挺麻煩,其實就是下面的格式:

LD_LIBRARY_PATH=<--prefix所指的地方/lib

export LD_LIBRARY_PATH

PGLIB=<--prefix所指的地方/lib

PGDATA=<你放數據庫文件的地方

PATH=$PATH:<--prefix所指的地方/bin

MANPATH=$MANPATH:<--prefix所指的地方/man

export PGLIB PGDATA PATH MANPATH

剛才提到的那些目錄都是在「root」身份下創建的,要讓它們能爲「typhoon」所用,還得改權限:

代碼:

[root@TFW-RFL40F postgresql-7.3.4]# chown -R typhoon.typhoon /opt/lin_app02/postgre*

即:

chown -R <PostgreSQL管理員所在組.<PostgreSQL管理員用戶名 <--prefix所指的地方

chown -R <PostgreSQL管理員所在組.<PostgreSQL管理員用戶名 <你放數據庫文件的地方

然後我關閉了X,並注銷,再重新登錄,以使環境變量生效。

代碼:

[typhoon@TFW-RFL40F typhoon]$ initdb

這個命令用來初始化PostgreSQL。請確保執行前你放數據庫文件的地方是空的。

初始化後會自動創建數據庫的超級用戶,用戶名與安裝、執行初始化的操作系統用戶同名。可能還會自動創建一個與用戶名同名的數據庫。在我這裏就是用戶「typhoon」和數據庫「typhoon」。直接執行「<--prefix所指的地方/bin/psql」就能登錄進去。「\q」可以退回操作系統的shell。如果這個數據庫沒有自動生成,請執行「<--prefix所指的地方/bin/createdb [用戶名]」,即以你的用戶名創建一個數據庫。這個數據庫就相當于你的「Home」,沒這個數據庫,做某些事情就不方便。

啓停方法

代碼:

[typhoon@TFW-RFL40F typhoon]$ postmaster -i -D ./postgre-data/&

postmaster -i -D <database-path&

......

這是開始數據庫系統的服務。後面那個「&」最好帶上,否則,......:-D

上面說的啓動方法是正規方法,PostgreSQL還提供了封裝的控制腳本「<--prefix所指的地方/bin/pg_ctl」。

代碼:

[typhoon@TFW-RFL40F typhoon]$ pg_ctl -l ./123/pg.log start

如果有「-l 文件名」這個參數,所有的錯誤都會被記錄到這個文件裏。

代碼:

[typhoon@TFW-RFL40F typhoon]$ pg_ctl stop

停止服務。既然是停止,就別管什麽記錄文件了。

代碼:

[typhoon@TFW-RFL40F typhoon]$ pg_ctl -l ./123/pg.log restart

相當于先「stop」再「start」。

代碼:

[typhoon@TFW-RFL40F typhoon]$ pg_ctl reload

如果對配置文件做了修改,想不中斷服務而立即生效,就這樣。

注意:PostgreSQL管理員最好從「Login:」、xdm或kdm登錄系統,因爲如果「su」過去操作將不能正常執行。

和大家共同進步。下面是我安裝時參考的帖子:

http://www.freelamp.com/new/publish/1022414614/index_html

http://chinaunix.net/jh/18/546.html

http://chinaunix.net/jh/18/548.html

我四處查找鏈接裏所說的「egcs-c++」,也沒下載到,後來才知道「egcs-c++」已經被整合進高版本的「gcc」裏了。我的「gcc」是3.2的。大家的「gcc」如果高于2.8,也就不要再到處找「egcs-c++」了。

安全管理

初始化後,在數據庫目錄裏會有這樣兩個文件:「postgresql.conf」和「pg_hba.conf」。

修改「postgresql.conf」第30行左右的地方爲頂格「tcpip_socket = true」,以允許網絡訪問。

「pg_hba.conf」,基于主機的訪問控制(Host Based Access)。左邊有「#」的內容都是被注釋掉的,起說明或參考等作用。

我以我現在的文件爲例做說明(裏面的中文爲我的說明):

代碼:

# PostgreSQL Client Authentication Configuration File

# ===================================================

#

# Refer to the PostgreSQL Administrator's Guide, chapter "Client

# Authentication" for a complete description.

A short synopsis

# follows.

#

# This file controls: which hosts are allowed to connect, how clients

# are authenticated, which PostgreSQL user names they can use, which

# databases they can access.

Records take one of three forms:

#

# local

DATABASE

USER

METHOD

[OPTION]

# host

DATABASE

USER

IP-ADDRESS

IP-MASK

METHOD

[OPTION]

# hostssl

DATABASE

USER

IP-ADDRESS

IP-MASK

METHOD

[OPTION]

#

# (The uppercase quantities should be replaced by actual values.)

# DATABASE can be "all", "sameuser", "samegroup", a database name (or

# a comma-separated list thereof), or a file name prefixed with "@".

# USER can be "all", an actual user name or a group name prefixed with

# "+" or a list containing either.

IP-ADDRESS and IP-MASK specify the

# set of hosts the record matches.

METHOD can be "trust", "reject",

# "md5", "crypt", "password", "krb4", "krb5", "ident", or "pam".

Note

# that "password" uses clear-text passwords; "md5" is preferred for

# encrypted passwords.

OPTION is the ident map or the name of the PAM

# service.

#

# This file is read on server startup and when the postmaster receives

# a SIGHUP signal.

If you edit the file on a running system, you have

# to SIGHUP the postmaster for the changes to take effect, or use

# "pg_ctl reload".

# Put your actual configuration here

# ----------------------------------

#

# CAUTION: The default configuration allows any local user to connect

# using any PostgreSQL user name, including the superuser, over either

# Unix-domain sockets or T

  安裝篇   我下載了PostgreSQL7.3.4,是源代碼,保存爲「/opt/lin_app02/tmp/download/PostgreSQL/R1/postgresql-7.3.4.tar.gz」。下載後,我在這個目錄下開了終端(rxvt),執行命令:   代碼:   [root@TFW-RFL40F R1]# tar zxvfp ./postgresql-7.3.4.tar.gz   得到一個目錄「postgresql-7.3.4」。   代碼:   [root@TFW-RFL40F R1]# cd postgresql-7.3.4   [root@TFW-RFL40F postgresql-7.3.4]# ./configure --prefix=/opt/lin_app02/postgres --enable-locale --enable-multibyte --with-perl --with-odbc --with-tcl   ......   對上面一步的說明:   ./configure   configure不加任何選項,系統將按默認的設置安裝postgresql,查看configre的相關選項可以使用:configure -help   一些最常用的如下:   --prefix=BASEDIR   爲安裝 PostgreSQL 選擇一個不同的基礎路徑。缺省是 /usr/local/pgsql。   --enable-locale   如果你想用本地化支持。   --enable-multibyte   允許使用多字節字符編碼。這個選項主要用于象日語,韓語或中文這樣的語言。   --with-perl   添加 Perl 模塊接口。請注意 Perl 接口將安裝到 Perl 模塊的常用位置(典型的是在 /usr/lib/perl),所以要成功使用這個選項,你必須有 root 權限。   --with-odbc   制作 ODBC 驅動包。   --with-tcl   制作 Tcl/Tk 需要的接口庫和程序,包括 libpgtcl,pgtclsh,和 pgtksh。   這些編譯參數告訴編譯器如何編譯PostgreSQL:   代碼:   [root@TFW-RFL40F postgresql-7.3.4]# make   ......   代碼:   [root@TFW-RFL40F postgresql-7.3.4]# make install   ......   中間不報錯的話,安裝就完成了。   初始化   創建一個存放數據庫文件的目錄:   代碼:   [root@TFW-RFL40F postgresql-7.3.4]# mkdir /opt/lin_app02/postgre-data   下面要設置環境變量。由于安全原因,PostgreSQL是不讓「root」等特權用戶用的。爲了方便,我就用日常工作的「typhoon」身份管理PostgreSQL,但是建議大家爲管理PostgreSQL新創建一個用戶。爲了方便,我直接修改了「/etc/profile」,但是建議修改個人主目錄下的「.bash_profile」。   我在環境變量文件裏添加了如下內容:   代碼:   ########################################   #   PostgreSQL   LD_LIBRARY_PATH=/opt/lin_app02/postgres/lib   export LD_LIBRARY_PATH   PGLIB=/opt/lin_app02/postgres/lib   PGDATA=/opt/lin_app02/postgre-data   PATH=$PATH:/opt/lin_app02/postgres/bin   MANPATH=$MANPATH:/opt/lin_app02/postgres/man   export PGLIB PGDATA PATH MANPATH   ########################################   看著挺麻煩,其實就是下面的格式:   LD_LIBRARY_PATH=<--prefix所指的地方/lib   export LD_LIBRARY_PATH   PGLIB=<--prefix所指的地方/lib   PGDATA=<你放數據庫文件的地方   PATH=$PATH:<--prefix所指的地方/bin   MANPATH=$MANPATH:<--prefix所指的地方/man   export PGLIB PGDATA PATH MANPATH   剛才提到的那些目錄都是在「root」身份下創建的,要讓它們能爲「typhoon」所用,還得改權限:   代碼:   [root@TFW-RFL40F postgresql-7.3.4]# chown -R typhoon.typhoon /opt/lin_app02/postgre*   即:   chown -R <PostgreSQL管理員所在組.<PostgreSQL管理員用戶名 <--prefix所指的地方   chown -R <PostgreSQL管理員所在組.<PostgreSQL管理員用戶名 <你放數據庫文件的地方   然後我關閉了X,並注銷,再重新登錄,以使環境變量生效。   代碼:   [typhoon@TFW-RFL40F typhoon]$ initdb   這個命令用來初始化PostgreSQL。請確保執行前你放數據庫文件的地方是空的。   初始化後會自動創建數據庫的超級用戶,用戶名與安裝、執行初始化的操作系統用戶同名。可能還會自動創建一個與用戶名同名的數據庫。在我這裏就是用戶「typhoon」和數據庫「typhoon」。直接執行「<--prefix所指的地方/bin/psql」就能登錄進去。「\q」可以退回操作系統的shell。如果這個數據庫沒有自動生成,請執行「<--prefix所指的地方/bin/createdb [用戶名]」,即以你的用戶名創建一個數據庫。這個數據庫就相當于你的「Home」,沒這個數據庫,做某些事情就不方便。   啓停方法   代碼:   [typhoon@TFW-RFL40F typhoon]$ postmaster -i -D ./postgre-data/&   postmaster -i -D <database-path&   ......   這是開始數據庫系統的服務。後面那個「&」最好帶上,否則,......:-D   上面說的啓動方法是正規方法,PostgreSQL還提供了封裝的控制腳本「<--prefix所指的地方/bin/pg_ctl」。   代碼:   [typhoon@TFW-RFL40F typhoon]$ pg_ctl -l ./123/pg.log start   如果有「-l 文件名」這個參數,所有的錯誤都會被記錄到這個文件裏。   代碼:   [typhoon@TFW-RFL40F typhoon]$ pg_ctl stop   停止服務。既然是停止,就別管什麽記錄文件了。   代碼:   [typhoon@TFW-RFL40F typhoon]$ pg_ctl -l ./123/pg.log restart   相當于先「stop」再「start」。   代碼:   [typhoon@TFW-RFL40F typhoon]$ pg_ctl reload   如果對配置文件做了修改,想不中斷服務而立即生效,就這樣。   注意:PostgreSQL管理員最好從「Login:」、xdm或kdm登錄系統,因爲如果「su」過去操作將不能正常執行。   和大家共同進步。下面是我安裝時參考的帖子:   http://www.freelamp.com/new/publish/1022414614/index_html   http://chinaunix.net/jh/18/546.html   http://chinaunix.net/jh/18/548.html   我四處查找鏈接裏所說的「egcs-c++」,也沒下載到,後來才知道「egcs-c++」已經被整合進高版本的「gcc」裏了。我的「gcc」是3.2的。大家的「gcc」如果高于2.8,也就不要再到處找「egcs-c++」了。   安全管理   初始化後,在數據庫目錄裏會有這樣兩個文件:「postgresql.conf」和「pg_hba.conf」。   修改「postgresql.conf」第30行左右的地方爲頂格「tcpip_socket = true」,以允許網絡訪問。   「pg_hba.conf」,基于主機的訪問控制(Host Based Access)。左邊有「#」的內容都是被注釋掉的,起說明或參考等作用。   我以我現在的文件爲例做說明(裏面的中文爲我的說明):   代碼:   # PostgreSQL Client Authentication Configuration File   # ===================================================   #   # Refer to the PostgreSQL Administrator's Guide, chapter "Client   # Authentication" for a complete description.   A short synopsis   # follows.   #   # This file controls: which hosts are allowed to connect, how clients   # are authenticated, which PostgreSQL user names they can use, which   # databases they can access.   Records take one of three forms:   #   # local   DATABASE   USER   METHOD   [OPTION]   # host   DATABASE   USER   IP-ADDRESS   IP-MASK   METHOD   [OPTION]   # hostssl   DATABASE   USER   IP-ADDRESS   IP-MASK   METHOD   [OPTION]   #   # (The uppercase quantities should be replaced by actual values.)   # DATABASE can be "all", "sameuser", "samegroup", a database name (or   # a comma-separated list thereof), or a file name prefixed with "@".   # USER can be "all", an actual user name or a group name prefixed with   # "+" or a list containing either.   IP-ADDRESS and IP-MASK specify the   # set of hosts the record matches.   METHOD can be "trust", "reject",   # "md5", "crypt", "password", "krb4", "krb5", "ident", or "pam".   Note   # that "password" uses clear-text passwords; "md5" is preferred for   # encrypted passwords.   OPTION is the ident map or the name of the PAM   # service.   #   # This file is read on server startup and when the postmaster receives   # a SIGHUP signal.   If you edit the file on a running system, you have   # to SIGHUP the postmaster for the changes to take effect, or use   # "pg_ctl reload".   # Put your actual configuration here   # ----------------------------------   #   # CAUTION: The default configuration allows any local user to connect   # using any PostgreSQL user name, including the superuser, over either   # Unix-domain sockets or T   
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有