Linux下postgresql 安裝

來源:互聯網
上載者:User
Linux下postgresql 安裝

1 添加使用者 建立目錄
  useradd postgres -d /usr/local/pgsql
  passwd postgres
  mkdir /usr/local/pgsql/
  mkdir /usr/local/pgsql/data
  chown -R postgres /usr/local/pgsql
  chown postgres /usr/local/pgsql/data
 
2 設定環境變數
  vi /etc/profile
  export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
  export PATH=/usr/local/pgsql/bin:$PATH
  export PGDATA=/usr/local/pgsql/data
  export MANPATH=$MANPATH:/usr/local/pgsql/man

3 安裝
   ./configure --prefix=/usr/local/pgsql ;make;make install

4 初始化資料庫
  su postgres
  /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
 
5 添加開機自啟動
  chmod a+x /postgresql-8.1.9(postgresql解壓目錄)/contrib/start-scripts/linux
  cp /tmp/postgresql-8.1.9/contrib/start-scripts/linux /etc/init.d/postgresql
  chkconfig --add postgresql

6 換資料庫使用者postgres的密碼
  psql template1
  然後
  ALTER USER postgres WITH PASSWORD 'password';

7 添加外部的訪問串連
  在pg_hba.conf加上
 

host    all         all         0.0.0.0/0      trust

修改postgresql.conf

listen_addresses = '*'

  啟動
    /usr/local/pgsql/bin/postmaster -i -D /usr/local/pgsql/data &
or
    /usr/local/pgsql/bin/pg_ctl -i -D /usr/local/pgsql/data -l logfile start
  關閉   kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`

 

===============================================

是了,我來這裡就只能總結一下了,  
  Linux下,postgresql.conf   pg_hba.conf   都是放在$PG_DATA目錄下,也就是一般的...../data目錄下  
   
  訪問的控制是修改pg_hba.conf檔案,如果加入的是下面行:  
  host         all                   all                   192.168.0.0           255.255.255.0           md5  
  這時,你從那個網段上訪問任何資料庫時,就要密碼,密碼在傳的過程中是加密碼的,  
  如果加下面一行:  
  host         all                   all                   192.168.0.0           255.255.255.0           password  
  這時,你從那個網段上訪問任何資料庫時,就要密碼,密碼在傳的過程中是沒加密碼的,  
  如果加下面一行:  
  host         all                   all                   192.168.0.0           255.255.255.0           trust  
  這時,你從那個網段上訪問任何資料庫時,就不要密碼,  
   
  修改postgresql.conf  
  中    
  把#tcpip_socket   =   false  
  改成tcpip_socket   =   true  
  這樣你在啟動時是否加有i   參數,用戶端都可連上你的資料庫!

 

 

一、實現遠端連線Linux上的PostgreSQL伺服器。

主要分兩個步驟:

<1>要使Linux上的PostgreSQL開啟 “unix的tcpip套接子”。

編輯 $POSTGRES/data/postgresql.conf 檔案,

將tcpip_socket=off改成tcpip_socket=on即可。

<2>設定遠端存取認證機制。

編輯 $POSTGRES/data/pg_hba.conf 檔案,

這個檔案上面一大堆都是介紹如何使用這個檔案使進行配置的,

最下面才是真正讓我們填寫東西的地方。

其中,有一行注釋:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

說明每一行有五個欄位,

分別是:連線類型、可使用的資料庫名、使用者、DIDR地址、和驗證方法等五項。

下面,我只介紹一些針對每個欄位常用的選項。

欄位一:TYPE。

可以選擇:local或host。

前者只能允許本地的使用者登陸Postgres資料庫;後者可以接受遠程客戶登陸。所以,

我們應該使用“host”。

欄位二:DATWABSE。

串連使用者可以使用的資料庫名字。可以使Postgres的一個具體的

資料庫名,也可以使用“all”來允許使用者訪問所有資料庫。

欄位三:USER。

可以指定某個具體的使用者來串連Postgres資料庫(還要結合後面的地址欄位),

也可以使用“all”來允許所有使用者串連資料庫。

欄位四:DIDR-ADDRESS。

這可能會讓您不知所措,不知道它為何物。

其實,它就是IP地址與掩碼的另一種表示方法而已。

Postgres是通過這個欄位來瞭解,允許那些IP或IP網段串連此伺服器。

它的格式是: IP地址/掩碼。

這個掩碼和子網路遮罩是一個道理,只不過是用一個小於等於32的正數來表示,

表示的正是子網路遮罩中高几位為1,

比如,255.255.255.0 就是“24”,說明高24位是1。

192.168.0.1/32 相當於 IP為192.168.0.1,子網路遮罩為255.255.255.255的網段,

很顯然,這隻表明192.168.0.1IP自己。

如果您對IP地址與子網路遮罩不太瞭解,請查看相關資料。

欄位五:METHOD。

這是驗證方法。可選的有:

reject:拒絕這個IP的使用者訪問;

md5:密碼以md5作為hash編碼;

password:密碼作為明文傳輸(好恐怖!);

krb5:密碼以krb5作為hash編碼。

下面舉一個例子,來說明如何進行設定:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

#允許IP為192.168.0.1的所有使用者登陸到Postgres伺服器的所有資料庫,採用md5驗證。

host      all                 all            192.168.0.1/32          md5

#允許使用者testuser在192.168.0.XX的網段任意機器登陸Postgres伺服器,

#只能使用資料庫testdb,採用md5驗證。

host      testdb           testuser 192.168.0.1/24          md5

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.