天天看點

PostgreSQL 9.4在RHEL上的安裝

這次在測試中需要使用postgresql來驗證某一具體功能是否正确,需要使用較為新一點的版本,是以就借此機會:

安裝和配置postgresql;

學習一些基本的用法。

我其實并不排斥使用源碼編譯并安裝應用,隻是覺得這個方式比較慢,且容易出錯(對我而言),如果有更好的alternative approach,我當然不會使用源碼來安裝它。

這裡不介紹太多,如果需要的話,大家可以自行下載下傳postgresql manual文檔,裡面大概第15章有較為詳細的介紹,不再贅述了。

下面介紹如何使用rpm packages在rhel5上安裝postgresql。按照推薦,安裝過程其實非常簡單:

-1,使用wget擷取到包含postgresql rpm mirror配置的package

-2, 安裝所擷取到的package

-3,使用yum groupinstall安裝postgresql

如果你的網絡足夠的好運,此處你應該已經安裝成功了,否則可能會提示無可用的mirror這樣的錯誤了。

不幸的是,我的網絡沒那麼好運氣! 我在安裝過程中卻發現了我的伺服器無法連接配接到mirror,下載下傳不到安裝所需要的rpm package。不知道是否因為這些mirror是否都被擋在了牆外,不得不workaround:

上文中講到提示無法找到可用的mirror,之是以要找mirror是因為需要下載下傳對應的package,那麼我幫你下載下傳到本地,然後直接安裝就可以了(就是這麼簡單):

-1, 下載下傳postgresql所需要的server, libs, contrib, client等rpm packages

-2,使用yum安裝所下載下傳到的rpm package

然後一路确認下去,最後就得到了安裝成功的提示了。

so, now the installed postgresql instance is ready for use!

成功安裝了postgresql之後,現在可以使用它來測試了:一般情況下,安裝之後,需要啟動服務,然後方能正常使用。先來看看安裝postgresql之後,是否有服務安裝了,rhel下,這些服務通常會在<code>/etc/init.d/</code>目錄下有對應的啟動腳本。檢視後發現<code>/etc/init.d/</code>目錄下多出了一個檔案<code>postgresql-9.4</code>

還是慣例,以root身份啟動這個服務,不過這裡有可能會提示你啟動失敗,是因為postgresql 9.4會要求先初始化資料庫,然後才能提供服務,提示資訊如下:

是以,安裝postgresql 9.4之後,正确的使用流程應該是:

-1, 先初始化db

此處需要執行一點時間, be patient!

-2,啟動postgresql9.4服務

此處應該能看到綠色的[ok]啦!然後就可以使用postgresql了!

-3, 驗證啟動結果

-4,建立使用者和庫

現在可以建立業務所使用的使用者和資料庫了,其實建立過程也比較簡單(也許沒有追求太深入,留後深造!),下面給出主要的指令:

至此,已經能夠正确使用新建立的使用者wh成功連接配接到新建立的postgresql資料庫了!

通過上文所做的操作,已經能夠讓你在postgresql所在機器本身操作建立的資料庫了,但是,通常情況下,我們需要從其他的機器連接配接到資料庫伺服器,以便更好的讓應用伺服器和資料庫伺服器都能發揮出更佳的性能。

1, 通過postgresql client嘗試連接配接到postgresql server,卻被提示無法連接配接:

其原因是因為預設情況下,postgresql雖然正确啟動了,資料庫伺服器本身也能夠正常的通路,但是,其他的機器并不能通過tcp/ip連接配接到postgresql服務,預設它并未監聽任何tcp/ip端口。

2, 這裡就需要配置tcp/ip監聽,以便允許其他機器通路postgresql服務:

3, 再次從用戶端嘗試連接配接到postgresql服務

出現這個錯誤有兩方面的解釋:

首先,端口5432已經開放監聽了,并且接收到了postgresql用戶端的連接配接請求;

其次, 驗證用戶端連接配接合法性出錯了,因為用戶端“192.168.1.102”并未被允許連接配接。

4,添加用戶端到白名單

在postgresql伺服器上修改配置檔案<code>/var/lib/pgsql/9.4/data/pg_hba.conf</code>

回到用戶端再次嘗試連接配接,你就會發現這次是可以成功連接配接到postgresql服務了。

至此,postgresql已經可以在遠端client正常使用了。