歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 完美的數據庫PostgreSQL 7.4的安裝

完美的數據庫PostgreSQL 7.4的安裝

日期:2017/2/27 14:26:40   编辑:更多Linux
  本章講述了如何通過源代碼安裝PostgreSQL 7.4數據庫,並且講述了安裝過程中的一些問題。同時講述了在安裝完成之後初始化數據庫的安裝與啟動和停止PostgreSQL的方法。    1系統需求  在這裡首先描述了安裝PostgreSQL數據庫服務器需要的環境,PostgreSQL數據庫的安裝遵守了GNU auto Tools的標准,在從源碼安裝的過程中,配置腳本會檢查系統環境是否符合數據庫的安裝要求。作為一個最基本的安裝,我們需要下面列出的工具或者程序庫。  Gnu make, 其他的make工具可能在編譯安裝的過程中產生問題,在通常情況下,可能gnu make工具被改名為make,而不是gmake,查詢你系統的文檔來看看是否符合這個要求,另外推薦gmake的版本要高於3.76.1,通過gmake --version可以檢查gmake工具的版本  與ISO/ANSI 標准兼容的C語言編譯器,如果需要PostgreSQL的C++開發庫也被編譯安裝,需要C++編譯器,gcc編譯器就可以滿足這個需求。  Gzip和tar工具,保證用來解壓縮你的源代碼包,這兩個工具在Linux系統上都是缺省被安裝的,如果你的系統上沒有這兩個工具,可以從相關的網站上找到源代碼或者已經按照某個Linux/unix編譯好的二進制包。  GNU的readline工具,在缺省情況下,PostgreSQL回使用readline工具來行編輯和命令歷史的檢索工作,當然你也可以禁止使用readline,在你執行configure腳本的時候使用--without-readline來忽略readline的使用。不過不推薦這樣使用。  如果你需要編譯安裝其他的一些特性,比如SSL的支持,或者你需要PostgreSQL與Java語言的開發接口等,你需要一些相關的工具,這些部分將在講述到相關主題的時候加以講解。這裡只描述最基本的安裝,包括C++的編程接口的支持。    下面描述一下筆者寫作本書的時候使用的平台:  系統平台:Redhat Linux 9.0  glibc版本:2.3.2  gcc編譯器版本:3.3.2  J2SE版本:1.4.2    2 PostgreSQL的安裝  PostgreSQL的安裝和大部分的Unix下的工具相似,執行的都是configure, make, make install的步驟,與其他大部分軟件的安裝過程不同的可能是在make install之後我們需要執行一些特殊的配置過程這樣才能使PostgreSQL數據庫服務器運行起來。  在你得到PostgreSQL的源代碼包之後,首先放到一個目錄下面,這裡用$HOME/src目錄來作說明。  首先進入到$HOME/src目錄,執行下面的命令將源代碼解壓縮。  cd $HOME/src  tar zxvf postgresql-7.4.tar.gz  如果你下載的是.bz2源代碼包,那麼你的系統上要有bzip2工具,然後可以執行  tar jxvf postgresql-7.4.tar.gz (在不同的系統上,可能會有所不同,請查閱系統的文檔)  解壓縮之後,會得到postgresql-7.4的目錄,然後進入這個目錄,執行配置過程。  cd postgresql-7.4  ./configure --prefix=/opt/pgsql --disable-debug –enable-thread-safety  如果你需要編譯PostgreSQL的JDBC支持的話,你必須擁有一個JDK, Apache Ant工具,設定了JAVA_HOME和ANT_HOME環境變量,在筆者的系統上,這兩個變量分別是  JAVA_HOME=/opt/j2sdk  ANT_HOME=/opt/ant  然後再配置的時候使用--with-java來配置,如果設置正確的話,PostgreSQL的JDBC驅動將出現在$prefix/share/java下面。    PostgreSQL的配置腳本可以接受很多的參數,這些參數用來告訴configure腳本哪些特性要編譯,哪些特性不需要,具體的參數信息的說明可以通過執行./configure --help來得到。  下面解釋一下上面配置命令的參數的意義。    --prefix=/opt/pgsql 用來決定編譯後的PostgreSQL程序安裝的根目錄,當make完成之後,make install將把程序安裝到/opt/pgsql下面,並在下面建立相應的目錄來存放程序的可執行文件,開發庫,頭文件等目錄,象下面這樣。    bin doc include lib man share  --disable-debug選項告訴configure腳本在執行編譯的時候不要編譯調試信息,當然這個選項不是控制是否生成用來進行代碼跟蹤的調試信息,而是控制在程序執行過程中不要輸出那些用來調試的信息。這樣可以提高程序的運行效率。如果想編譯一個優化的不包括用來進行代碼跟蹤的調試信息的版本,你需要在執行你的configure腳本的時候,設定你的CFLAGS,CXXFLAGS,CPPFLAGS等環境變量,使其不包括-g選項。而使用-O2,或者-O3來代替。  --enable-thread-safe 選項告訴configure腳本用來編譯線程安全的客戶庫。  當配置腳本執行完之後,我們就可以執行make來真正的構建PostgreSQL數據庫服務器。  執行make。    根據系統的配置和選擇特性的多少,這個過程的時間可能會有很大的差別。當make結束之後,如果出現了下面的內容,那麼表示你選擇的特性已經被正確的編譯完成了。    All of PostgreSQL sUCcessfully made. Ready to install.  接下來的事情就是make install,注意執行make install的時候,你需要具有root的權限。當完成之後會出現PostgreSQL installation complete.提示信息,這表示我們的安裝已經成功的完成了,察看你安裝目錄下面的目錄結構可以看到bin doc include lib man share這樣的目錄,在bin的下面,存放了用來執行一些PostgreSQL服務或者相關操作的命令,doc下面安裝的是隨PostgreSQL發布的文檔,使用的是Html格式,從7.4版本開始,PostgreSQL的文檔被合並到了一個大的文檔,而不是以前那種分成各種不同手冊的形式。include下面包含的是用C/C++開發PostgreSQL應用程序要使用的頭文件,lib下面存放的是運行PostgreSQL數據庫服務器或者相關工具所需要的庫文件。man下面是相關命令或者工具的手冊頁,share下面存放的是一些公共的數據,如果你編譯了PostgreSQL的JDBC支持,那麼這裡面就會有一個java目錄,裡面會有postgresql.jar文件,是PostgreSQL的JDBC驅動程序。    3 PostgreSQL的初始配置  在成功的安裝了數據庫之後,我們需要作一些初始化工作,這樣我們才能正常的啟動數據庫服務器,開發我們的數據庫應用。    首先我們要設置PATH,因為我們的程序沒有安裝到已有的PATH的下面,所以我們需要添加$prefix/bin到系統的PATH中,這樣我們的程序就可以直接使用相應的文件。但是光添加了路徑,我們的程序在運行的時候還不能找到所需要的庫,所以我們需要修改系統查找的庫路徑的信息。在Linux下面,這可以通過兩種方式來實現,一是修改環境變量LD_LIBRARY_PATH,這樣我們就可以在/etc/profile裡面添加一句eXPort LD_LIBRARY_PATH=/opt/pgsql/lib:$LD_LIBRARY_PATH。或者我們可以使用另外一種方式,將PostgreSQL的庫路徑添加到/etc/ld.so.conf文件裡面,然後執行一下ldconfig命令,這樣系統就會創建在這個文件總所有路徑下面的庫的信息緩存,當系統需要尋找系統的庫的時候,會首先找到這個緩存,然後就可以定位到正確的路徑來裝載所需的運行庫。    另外,如果我們希望能使用man來查詢手冊頁,那麼還需要設置MANPATH這個環境變量,這樣我們就可以直接通過man psql來查詢psql這個命令怎麼使用了。你可以在系統級的腳本上修改這個環境變量,或者也可以在你自己用戶目錄下的啟動腳本來修改這個環境變量,使用下面的命令就可以了  export MANPATH=/opt/pgsql/man:$MANPATH    PostgreSQL建議用戶使用一個單獨的用戶帳號來運行PostgreSQL的服務器,一般推薦postgres用戶,因為在很多腳本裡面都使用了這個用戶帳號。所以接下來我們要創建postgres用戶。根據你系統的文檔找出合適的添加用戶的方法。下面使用Redhat Linux9.0中使用的命令來解釋。(注意下面的命令在root用戶權限下執行)    /usr/sbin/useradd postgres  passwd postgres  設置postgres用戶的密碼,在後面講到啟動和停止數據庫服務器的時候會使用到這個密碼。所以一定要記住。在你修改了數據庫的某些配置之後,如果你想重新啟動數據庫,啟動腳本會問你這個密碼。    一般情況下我們希望PostgreSQL能把數據庫文件放在一個獨立的位置,而不是postgres用戶的主目錄。(當然我們也可以讓他們使用同一個目錄)。接下來我們創建一個目錄用來存放PostgreSQL的數據庫文件和PostgreSQL服務起運行時所產生的文件,在下面的例子中我們把這個目錄放到/var/lib下面,並且命名為pgsql/data,執行下面的命令來創建這個目錄    mkdir -p /var/lib/pgsql/data  創建了目錄之後,因為這個目錄要被postgres用戶使用,所以我們改變這個目錄的權限,把它的所屬權改為postgres,執行命令chown postgres /var/lib/pgsql/data。    在完成了上面的步驟之後,我們就可以執行initdb命令來初始化PostgreSQL服務器的設置,執行下面的命令。  su - postgres //切換到postgres用戶來執行下面的命令。  initdb -D /var/lib/pgsql/data  輸出結果如下:    The files belonging to this database system will be owned by user "postgres".  This user must also own the server process.    The database cluster will be initialized with locale zh_CN.GB18030.    fixing permissions on existing Directory /var/lib/pgsql/data/... ok  creating directory /var/lib/pgsql/data//base... ok  creating directory /var/lib/pgsql/data//global... ok  creating directory /var/lib/pgsql/data//pg_xlog... ok  creating directory /var/lib/pgsql/data//pg_clog... ok  selecting default max_connections... 100  selecting default shared_buffers... 1000  creating configurat




Copyright © Linux教程網 All Rights Reserved