postgresql源碼安裝__正確

來源:互聯網
上載者:User
使用的Linux發行版是ubuntu server 6.06,ubuntu 內建版本最高只有8.1,為了嘗鮮,同時8.2.0已經對基於windows平台的相容性進行了改進,便於平台的轉換。同時源碼安裝可以自己制定一些參數和設定,ubuntu雖然有很好的易用性和相容性,並且部分特性也較新,但是同window有些相像,減少也封閉了很多細節問題,讓開發人員沒有機會也不用嘗試去理解一些程式的安裝過程和參數,對於程式開發來說,並不一定是件好事。

 
一 安裝Postgresql8.2.0

1. 下載源碼。
到postgresq.org下載最新的源碼。

2 解壓。
tar -vxf postgresql*.tar.gz
3 配置,進入解壓目錄後可以用./configure –help來查看可用的參數。我使用的是:

   # ./configure --prefix=/home/shaken/postgresql --without-readline  --without-zlib

前一個參數是把循照慣例把自己的軟體安裝到/opt目錄下,後面兩個參數是因為我的系統裡沒有安裝readline和zlib,其實安裝一下就可以了。
 
   在ubuntu中這樣可以去掉後面的兩個--without參數:
   # apt-get install libreadline5-dev zlib1g-dev
  解決在ubuntu安裝postgresql時,configure出現的問題。

4 編譯後並安裝:

  # make

  # make install

5 增加Postgresql資料庫的最高使用者postgres並設定密碼:

  # adduser postgres
  # mkdir /home/shaken/postgresql/data
  # chown postgres /home/shaken/postgresql/data

最好再這樣:
  # chown -R postgres /home/shaken/postgresql  

6 以使用者postgres登陸:

  # su – postgres
 
 

7 初始化資料庫:
    $ /home/shaken/postgresql/bin/initdb -D /home/shaken/postgresql/data

8 運行資料庫伺服器:

  $ /home/shaken/postgresql/bin/postmaster -D /home/shaken/postgresql/data>logfile 2>&1 &

9 建立一個資料庫:

  $ /home/shaken/postgresql/bin/createdb test

10 在本機上運行用戶端進行管理:

  $ /home/shaken/postgresql/bin/psql test

    這就要求你對基礎的sql文法要熟悉了。

 

    到這裡Postgresql就算安裝完成了。但是為了能遠程使用該資料庫---比如說我要在網路上另外一台Windows電腦上使用pgAdmin來管理 使用該Postgresql伺服器---則還需要進行一些修改,這些修改主要包括兩方面的修改,一是修改Postgresql的兩個設定檔,二是修改數 據庫的一些使用者權限:

11 修改Postgresql的設定檔Postgresql.conf,該檔案在資料目錄/home/shaken/postgresql/data下,將其中的一句:

listen_address=’localhost’

前面的注釋去掉,並把’localhost’該為’*’。

 

12修改Postgresql的設定檔pg_hba.conf,該檔案在資料目錄/home/shaken/postgresql/data下,在檔案後面加一句:

host   all all  192.168.0.0/24   password

這句的意思是:同網路中192.168.0.*的機器可以以密碼的形式使用所有的資料庫。更具體的參數意義直接看該設定檔中的注釋就可以了。

這裡一定要配置正確,否則無法在遠端連線postgresql資料庫。

 

13 重新啟動postgresql伺服器:

 $ /home/shaken/postgresql/bin/pg_ctl stop -D /home/shaken/postgresql/data

  停止原來的伺服器

 $  $ /home/shaken/postgresql/bin/postmaster -i -D /home/shaken/postgresql/data >logfile 2>&1 &

  再次啟動,加一個-I參數

 

14 一些資料庫使用者權限的簡單配置,以下是在psql中使用

# create userwen1 password ‘123456’;

 建立一個使用者並設定密碼

# createdatabase data1 owner wen1;

  建立一個資料庫

# create tablewen11(name varcha(10))

  建立一個資料表

# alter table  wen11 owner to  wen1;

  修改資料表的屬主。

  現在可以在區域網路內的其他電腦使用其他postgresql用戶端工具,以使用者名稱wen1開啟data1資料庫了。

 

還需要改進的一些問題:

1 中文支援的問題:使用encoding=’UTF-8’建立資料庫好不好?

2 系統啟動時自動啟動postgresql的問題:完全可以參考Debian的相應啟動指令碼。

 
二  phppgadmin的安裝配置(可選的過程)
 
      為了管理配置我的資料庫伺服器,對於我這樣的postgresql生手,需要一個方便的管理程式。這樣的管理工具很多,考慮自己以前使用mysql有一個 便利的phpmyadmin,我選擇了phppgadmin。   phpPgAdmin是一個充分地功能基於互連網的postgresql管理公用程式。它處理所有基本的功能並且某個先進的功能譬如觸發器, 視圖等,是一個基於B/S模式的管理軟體,必須安裝在伺服器端。
 
    具體的安裝過程為:
    1 下載源碼,現在的最新版本為4.0.1
           # cd
           # wget http://......./phpPgAdmin-4.0.1.tar.gz
       2 解壓:
      # tar zxvf phpPgAdmin-4.0.1.tar.gz
       3 檢查系統是否已經安裝好apache+php以及php對postgresql的支援,如果沒有,以下為安裝:
      # apt-get install apache php4 php4-pgsql
          注意修改apache的設定檔以使apache支援php。
    4 使phpPgAdmin在用戶端可用,我一般是在apapche目錄下建立符號串連:
      # ln -s /root/phpPgAdmin-4.0.1 /var/www/pgadmin
       5 修改phpPgAdmin的設定檔 config/config.inc.php,其中必須要修改的參數有:
      $conf['servers'][0]['host']='localhost';
           標明資料庫伺服器在本機
           $conf ['extra_security'] = false;
           允許使用postgres帳號登陸。
    6 在用戶端使用瀏覽器,輸入地址:
      http://....../pgadmin
          就可以進行postgresql資料庫的管理了。

三 安裝postgis

  1 最好先安裝proj4和OGR,我偷懶沒有安裝,應該只是效能上打折扣吧,並不影響安裝使用。
   Debian下可以這樣:安裝postgis的時候,先:
    #apt-get install proj libgeos libgeos-dev

  2 下載源碼。

  3 解壓進入目錄。

  4 配置:

# ./configure --prefix=/opt/postgis --with-pgsql=/home/shaken/postgresql/bin/pg_config

意思很明顯

  5 編譯、安裝:

# make

# make install

  6 之後的一些工作:

   $ /home/shaken/postgresql/bin/createdb data1

$ /home/shaken/postgresql/bin/createlang plpgsql data1

$ /home/shaken/postgresql/bin/psql-d data1 -f  lwpostgis.sql

$ /home/shaken/postgresql/bin/psql-d data1 -f spatial_ref_sys.sql

注意找到並進入包含後面那兩個sql檔案的目錄再進去執行。

 
下面可以使用postgis了,先試試Postgis提供那兩個轉換shape檔案和postgis資料的小程式吧。

四 PostGIS的初步使用

    網路上關於PostGIS的使用的文章不多,而且說得不夠詳細,今天經過一番摸索,得到一些基本應用的經驗,希望能減少一些大家入門的周折。

    以下假設我要把一個test.shp檔案(實際上完整的應包含三個檔案)的資料匯入到Postgresql資料庫data1中的test資料表,為了安全 起見,資料庫Data1及相關的資料表的屬主都設定為wen1,然後在GIS用戶端如QGIS uDig等使用這個PostGIS資料。詳細的過程為;

   1 假設PostGreSQL資料庫伺服器和PostGIS都安裝好。(見另文"源碼安裝Postgresql8.1.3+PostGIS1.1.2")
   2 以資料庫的超級使用者postgres進入psql:
     # /home/shaken/postgresql/bin/psql         (注意路徑)
     以下的操作都是在psql控制台。
   3 基本設定:
    # create user wen1 password ‘123456’;        建立一個使用者並設定密碼
    # create database data1 owner wen1;            建立一個資料庫
    # alter table spatial_ref_sys owner to  wen1;
    # alter table geometry_columns owner to wen1 ;  這兩句修改兩個postgis相關的表的屬主為wen1,很重要,一般文章中似乎沒提到這兩點。
   4 資料轉換,以下工作退出psql,在shell介面進行。
     先把三個test.shp檔案複製到/opt/postgis/bin目錄下並轉到該目錄下,注意路徑,注意目錄和檔案的許可權---也許退出postgres使用者到root使用者簡單一些。
     # /opt/postgis/bin/shp2pgsql test test data1 > test.sql
     # /home/shaken/postgresql/bin/psql -d data1 -f test.sql
     注意參數都要寫對,不明白的話一定要用--help參數查看。
   5 在客戶機器上開啟QGIS,依次選擇"圖層"-->"添加PostGIS圖層"-->"建立",然後設定好正確的伺服器IP,資料庫名data1,使用者wen1及密碼,再點擊"串連",然後下方會出現test圖層的名字,選擇就可以了。
    uDig的使用也大同小異。

    一點體會:
    1 要先弄懂PostgreSQL的使用,尤其是各種許可權的概念和關係,這是一般從Windows下轉移來的人很缺乏的。
    2 最好選擇一個好的PostgreSQL用戶端工具來協助調試,推薦使用PgAdmin。
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.