Linux CentOS 7 安裝PostgreSQL 9.5.17 (源碼編譯)

近日須要將PostgreSQL數據庫從Windows中遷移到Linux中,Linux CentOS 7 安裝PostgreSQL 9.5.17 安裝過程 特此記錄。sql

安裝環境:

數據庫:PostgreSQL 9.5.17數據庫

Linux:CentOS 7.3bash

數據庫源文件下載:

在postgresql的官方便可找到源碼文件目錄(地址:https://www.postgresql.org/ftp/source/),在列表中找到須要下載的 9.5.17版本服務器

進入目錄,看到文件列表,選擇.tar.gz格式文件,點擊下載網絡

編譯安裝:

將下載好的數據庫安裝文件,上傳至服務器的/user/local/目錄下,而後進入該目錄,解壓安裝包。工具

#   tar -zvxf postgresql-9.5.17.tar.gz  post

進去解壓後的postgresql文件夾,進行編譯,並在在編譯時指定安裝目錄測試

#  ./configure --prefix=/usr/local/postgresql  加密

編譯出錯spa

沒有c編譯器,安裝gcc

#  yum install  gcc  

安裝完成後,再次執行編譯

編譯出錯

缺乏readline開發包,安裝readline-devel包:

#  yum install  readline-devel  

 安裝完成後,再次執行編譯

 編譯出錯

缺乏zlib開發包,安裝zlib開發包:

#  yum install  zlib-devel   

 安裝完成後,再次執行編譯

編譯成功,成功建立建立了config.status配置文件

編譯配置完成,開始執行安裝:依次執行:

#  make   

 

#  make install   

 

編譯安裝完成

設置用戶權限及環境變量

編譯安裝成功後,接下來要作的就是建立一個普通用戶,由於默認超級用戶(root)不能啓動postgresql,因此須要建立一個普通用戶來啓動數據庫,執行如下命令建立用戶:

#  useradd admin  

 須要設置權限,將postgres的數據目錄所有賦權給admin用戶(此處我將postgres的數據目錄指定在在/usr/local/postgresql/data目錄下):

# chown -R admin:admin /usr/local/postgresql/  

設置相關環境變量

此處僅僅設置admin用戶的環境變量,因此首先切換到admin用戶 

切換用戶: #  su - admin   

而後打開.bash_profile文件並追加如下內容:

打開.bash_profile文件 : $   vi .bash_profile   

追加一下內容:

PGHOME=/usr/local/postgresql export PGHOME PGDATA=/usr/local/postgresql/data export PGDATA PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

修改完成後能夠經過 $ source ./.bash_profile  使其當即生效

檢驗環境變量是否設置正確

切換任意目錄輸入$  which psql  以及  $  psql -V  便可分別查看psql客戶端的路徑以及postgresql的數據庫版本

初始化數據庫

因爲配置了環境變量,因此此處咱們直接執行initdb命令便可完成db初始化

$  initdb   

初始化成功

進入postgresql的目錄能夠看到生成的數據目錄data以及該目錄的相關數據和配置文件:

接下來修改配置文件,pg_hba.confpostgresql.conf。一個是訪問控制配置(127.0.0.1改成信任的客戶端ip網段使其能夠遠程訪問),一個是postgresql主配置文件(listen_address=localhost改成星號使其監聽整個網絡)。

進入/usr/local/postgresql/data目錄,修改文件,這裏將pg_hba.conf的ip地址修改成0.0.0.0/0,而加密方式改成md5,就表示須要密碼訪問: 

pg_hba.conf文件修改:

修改postgresql.conf文件

listen_address=localhost改成星號使其監聽整個網絡:

同時須要放開機器的5432端口,這裏爲了方便起見,直接關閉服務器防火牆:

關閉防火牆:

$ systemctl stop firewalld   

此時爲普通用戶,關閉防火牆須要root帳戶權限,須要輸入root帳戶密碼獲取權限

禁止防火牆開機啓動:

$ systemctl disable firewalld   

此時爲普通用戶,取消防火牆開機啓動一樣須要root帳戶權限,須要輸入root帳戶密碼獲取權限

查看防火牆狀態:

$ systemctl status firewalld  

防火牆已經關閉

至此配置相關的內容就所有完成了,最後就是啓動並鏈接數據庫了。

啓動、鏈接數據庫

在初始化數據庫結束時咱們已經看到了啓動命令

因爲以前設置了環境變量,因此已經指定了數據目錄PGDATA,-l表示日誌文件目錄,一般須要指定,因此咱們在/usr/local/postgresql根目錄下再建立一個log目錄用來存放日誌文件並賦予可寫的權限

進入 /usr/local/postgresql目錄

建立文件夾

$ mkdir log  

賦予權限

$ chown -R admin:admin /usr/local/postgresql/log/   
啓動數據庫

$ pg_ctl start -l /usr/local/postgresql/log/pg_server.log   

啓動成功: 

經過postgresql自帶的客戶端工具psql來進行鏈接(在鏈接是須要制定鏈接數據庫,這裏直接鏈接postgres數據庫):

 $ psql postgres   

設置admin用戶的密碼(默認爲空),用psql鏈接成功後直接輸入 \password  即會提示輸入兩次密碼,以下圖:

 

修改完密碼之後,就是最重要的一點就是驗證非本地客戶端工具的鏈接了,畢竟咱們是要作數據庫服務器的,這裏我選擇的工具是Navicat Premium,在主機(Windows 10)打開Navicat與虛擬機中的postgresql服務器進行鏈接測試:

能夠發現鏈接成功,同理中止數據庫可使用命令 pg_ctl stop 來關閉postgresql服務,很簡單,至此關於源碼編譯安裝postgresql就所有結束了。

相關文章
相關標籤/搜索