【PG數據庫】PG數據庫的安裝及連接方法


一.PostgreSQL簡介

PostgrepSQL是一種對象關系型數據庫管理系統。

二.PostgreSQL環境的安裝和配置

2.1源碼的下載

PostgreSQL 14.0源碼可以從PostgreSQL官網:https://www.postgresql.org/download/ 的下載區獲取。獲取之后將其解壓。

源碼目錄內容,如下圖所示:

 

 

 

2.2 環境配置

安裝之前首先為系統配置環境,這個過程通過運行上圖中的configure腳本文件即可,命令如下:

./configure

注意:安裝的時候,遇到兩個問題,新環境高頻出現,可以通過最后一章中的方法進行解決。

2.3 編譯

配置好環境變量之后,對源碼進行編譯。2.1圖中,可以看到已經有完整的makefile文件,在目錄下執行下面的命令,進行編譯:

make clean all

編譯過程大約持續5~30min

2.4 回歸測試

如果想在安裝文件前測試新編譯的服務器,那么可以在這個時候運行回歸測試。回歸測試是一個用於驗證PostgreSQL在你的系統上是否按照開發人員設想的那樣運行的測試套件。通過下面命令執行:

make check

如果執行結果如下,代表檢查通過:

 

注意:這個命令只能在非特權用戶下運行,不能在root權限下運行

2.5 安裝、卸載、清理文件

1)安裝

安裝PostgreSQL,需要輸入下面的命令:

sudo make install

由於install命令需要在root權限下執行,所以需要按上面的命令執行。

2)卸載

如果想要卸載安裝,則執行下面的命令即可,需要注意此命令不會刪除任何創建出來的目錄:

sudo make uninstall

(3)清理

編譯之前可以通過make clean命令,將之前的編譯文件進行刪除,避免對后續的編譯產生影響。

2.6 安裝后進行設置

2.6.1 創建用戶

root用戶不能啟動postgresql,所以需要創建一個普通用戶來啟動數據庫,如下圖所以,創建用戶並設置登錄口令。注意:下面兩條命令均需在root權限下執行。

命令1$sudo useradd postgres

沒有其他輸出,代表成功。

命令2$sudo passwd postgres

輸入類似於這樣的密碼,可以成功ht3pki2008!!

如下圖所示:

 

2.6.2 設定權限

postgresql目錄下創建目錄data(數據庫存儲)和log(日志存儲),然后將postgresql的目錄權限全部賦予給postgres用戶。

命令1$sudo mkdir /usr/local/pgsql/data

命令2$sudo mkdir /usr/local/pgsql/log

命令3$sudo chown -R postgres:postgres /usr/local/pgsql

2.6.3 共享庫

在一些有共享庫的系統里,需要告知本地系統如何找到新安裝的共享庫。設置共享庫的搜索路徑的方法因平台而異,本機是Linux系統,因設置命令需要root權限,故在安裝之后運行下面命令進行設置:

sudo /sbin/ldconfig /usr/local/pgsql/lib

設置后,可以在運行時,讓鏈接器更快地找到共享庫。

2.6.4 環境變量

1. PG添加到環境變量

本機PG安裝路徑為/usr/local/pgsql,安裝到此目錄或者其他默認不在搜索路徑中的地方,應該在本地的PATH環境變量里面增加一個/usr/local/pgsql/bin

上面的操作非必須,但可以在使用PG更方便。

將下面的幾行加到shell啟動文件即可,如:~./bash_profile()如果想影響所有用戶就放在/etc/profile):

export PGDATA=/usr/local/pgsql/data

export PGHOME=/usr/local/pgsql

export PATH=$PGHOME/bin:$PATH

注意:/etc/profile文件需要root權限操作,所以在修改的時候可以使用sudo vim /etc/profile,打開文件修改。

2. man文檔添加到環境變量

為了讓系統找到man文檔,將下面的內容添加到shell啟動文件里:

MANPATH=/usr/local/pgsql/share/man:$MANPATH

export MANPATH

修改完成后,使用下面的命令使其生效:

命令1sudo -s(切換到root權限)

  命令2source /etc/profile

2.6.5 初始化數據庫

切換為postgres用戶,使用initdb --help可以看到初始化數據庫的幫助信息,如下圖所示:

命令1$initdb --help

 

圖中紅框中文字所示,由於之前在配置文件中已經設定了環境變量PGDATA,因此可以直接使用命令initdb來完成數據庫初始化操作。

首先,切換到postgres用戶,命令:#su - postgres

然后,初始化數據庫,命令:$initdb

如果出現下面的結果,代表初始化成功:

此時,可以發現/usr/local/pgsql/data中已經有文件了,代表已經初始化成功。

2.6.6 配置數據庫

首先,進入/usr/local/pgsql/data目錄,使用命令vim pg_hba.conf,配置對數據庫的訪問控制(設置為可以通過密碼訪問)。如下圖所示:

 

然后,使用命令vim postgresql.conf,配置數據庫參數(設置服務器監聽整個網絡,設置端口號為5432)。如下圖所示:

 

2.6.7 關閉防火牆(root用戶)

使用命令systemctl status firewalld.service查看防火牆狀態,如圖13所示:

 

通過上圖可知,防火牆屬於關閉狀態。

如果查看到防火牆處於開啟狀態,如下圖:

 

若想將其關閉,使用命令sudo systemctl stop firewalld.service關閉防火牆。(ps:使用命令systemctl disable firewalld.service,可以停用防火牆開機自啟)

2.6.8 配置系統服務(root用戶)

進入postgresql源碼包的解壓目錄(本文為/home/10318001@zte.intra/Desktop/王澤輝的工作空間/postgreSQL源碼/postgresql-14.0),執行命令

cp contrib/start-scripts/linux /etc/init.d/postgresql

然后執行vim /etc/init.d/postgresql,查看配置信息是否如下圖所示,若不同,請按下面的方式配置:

 

然后使用命令chmod +x /etc/init.d/postgresql(需在root權限下執行),賦予該文件執行權限。另外,還可以使用命令chkconfig --add postgresql(需在root權限下執行),設置服務開機自啟。

2.6.9 啟動及鏈接數據庫

1. 啟動數據庫服務

使用命令#service postgresql start(需要root權限),啟動數據庫服務。可以通過命令:$sudo ps -ef | grep postgres,查看postgres相關進程,如下圖所示:

 

 

 

3. 鏈接數據庫

通過上述方法啟動數據庫后,便可通過postgresql自帶的客戶端工具psql來進行鏈接(psql二進制文件在/usr/local/pgsql/bin,因為已經配置環境變量,所以全局也可執行)。

請按如下的步驟進行操作:

(1) 在postgresql用戶下直接輸入命令:$psql,看到版本信息則說明鏈接成功。

(2) 然后,使用”\password,設置密碼。如下圖所示:

 

(3) 驗證非本地客戶端工具的鏈接。

最后也是最重要的一步,就是驗證非本地客戶端工具的連接。本文選擇的工具是Navicat Premium,在主機(Window10)打開Navicat與虛擬機中的postgresql服務器進行連接測試,如下圖所示:

 

 

 

(4) 停止數據庫連接服務

若想停止數據庫服務,可以在root權限下執行命令:#service postgresql stop

總結:以上就是linux環境下源碼編譯安裝PostgreSQL的全過程。

十.錯誤及解決辦法

10.1 安裝PG時,執行configure腳本報錯

問題一:

1. 安裝前,執行configure配置文件時,報下面錯誤

configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure.  It is possible the compiler isnt looking in the proper directory.
Use --without-readline to disable readline support.

2. 解決辦法

(1)根據提示是沒有安裝readline包,首先檢查是否安裝readline

 

由上可知,系統中已經安裝了readline包。

(2)通過yum查詢readline包,觀察都有哪些相關的包

由上可知,readline-devel.i686readline-devel43.i386可能未安裝,嘗試安裝readline-devel包。

3)嘗試安裝readline-devel

注意,執行這個安裝命令,需要在root權限下安裝,用下面命令即可。

 

顯示“完畢”之后,即代表安裝完成。

(3)再次執行configure腳本,即可通過。

問題二:

1. 安裝前執行configure腳本,報下面的錯誤

checking for inflate in -lz... no

configure: error: zlib library not found

If you have zlib already installed, see config.log for details on the

failure.  It is possible the compiler isn't looking in the proper directory.

Use --without-zlib to disable zlib support.

2. 解決辦法

(1)首先檢查系統中是否安裝zlib

 

(2)通過yum查看zlib包,查看哪些包缺失

 

通過上述查看可知,zlib-devel需要安裝。

(3)安裝zlib-devel

由於安裝需要root權限,采用下面的命令安裝即可,如下圖:

 

4)繼續執行configure腳本,執行成功,問題得到解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM