在Ubuntu18.04 Server中安裝與配置postgresql


本次安裝環境為Ubuntu18.04 Server,postgresql采用10版本。

postgresql數據庫安裝可主要分為兩種,一種是apt快速安裝,一種是二進制安裝。本次安裝我們將一一記錄這兩種安裝步驟。


######1、在Ubuntu18.04中默認庫是postgresql-10版本,如果我們要安裝歷史版本可以增加源庫 ``` sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ YOUR_UBUNTU_VERSION_HERE-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update ``` ######這里有一個參數需要根據實際情況進行填寫:YOUR_UBUNTU_VERSION_HERE-pgdg ubuntu18.04 對應的是bionic-pgdg ubuntu16.04 對應的是xenial-pgdg ubuntu14.04 對應的是trusty-pgdg

不要填錯,一旦填寫錯誤,可以打開/etc/apt/sources.list.d/pgdg.list進行修改里面的參數進行解決。

2、源庫更新完成,開始正式安裝,apt快速安裝。
sudo apt-get install postgresql-10 -y

查看安裝狀態

$ dpkg -l |grep postgresql
ii  postgresql-10                         10.4-0ubuntu0.18.04               amd64        object-relational SQL database, version 10 server
ii  postgresql-client-10                  10.4-0ubuntu0.18.04               amd64        front-end programs for PostgreSQL 10
ii  postgresql-client-common              190                               all          manager for multiple PostgreSQL client versions
ii  postgresql-common                     190                               all          PostgreSQL database-cluster manager
3、安裝完成,我們可以使用服務操作命名進行操作:
sudo service postgresql start/stop/restart

使用ps -aux|grep postgres進行查看當前運行的服務

我們使用以下命令進入數據庫進行再次確認安裝正常

sudo -u postgres psql
postgres=# select version();
 PostgreSQL 10.4 (Ubuntu 10.4-0ubuntu0.18.04) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0, 64-bit
好了第一種安裝方式完成,開始進行使用postgresql吧。

初始安裝完成后常用的目錄如下:

data_directory = '/var/lib/postgresql/10/main'            # 數據存放位置
hba_file = '/etc/postgresql/10/main/pg_hba.conf'          # 身份配置文件,可進行過濾IP、登錄方式、登錄用戶
external_pid_file = '/var/run/postgresql/10-main.pid'     #運行時pid存放位置
config_file=/etc/postgresql/10/main/postgresql.conf       #核心配置文件存放位置

可以根據實際需求進行調整


我是朴實簡單的分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第二種安裝方式,編譯安裝

以下為不同版本的二進制包,這里我們下載postgresql10系列中最高版本,這里我們下載的是tar.gz格式,可根據自己情況進行下載即可。
https://www.postgresql.org/ftp/source/

第一步,下載與解壓
wget https://ftp.postgresql.org/pub/source/v10.6/postgresql-10.6.tar.gz
tar -zxf postgresql-10.6.tar.gz

image.png

第二步,編譯源程序,

注(可使用find ./ -maxdepth 1 -type d進行查看當前符合標准的文件)
./configure --help 可以查看其相關支持的參數,根據其情況進行設置,初期我們只需要使用--prefix參數即可。

cd postgresql-10.6/
./configure --prefix=/pgdata

注意事項:
在使用編譯命令過程中可能會出現部分組件缺失的情況,這里如果是Ubuntu系統可執行 sudo apt-get install -y libtool libapr1 make gcc libexpat1-dev readline-devel zlib-devel

image.png

第三步,開始進行安裝
make
make install

正常情況下make執行完畢后顯示為下圖所示,這時我們可以執行第二句make install 進行安裝即可。

image.png

安裝完畢后,顯示如圖所示

image.png

這時我們其實已經安裝完成postgresql數據庫了,如果我們不需要其他組件,則可直接進入第五步開始初始化數據庫。

第四步,開始安裝常用組件庫。postgresql延伸出來的組件非常豐富,這里我建議安裝其源碼包中的組件,以便后續教程中使用。
cd contrib/
ls

這里我們可以看到有很多的組件,比較常用的有postgres_fdw、dblink等均包含在內。
image.png

make
make install

image.png
image.png
這時組件庫已經安裝完成。

第五步,創建數據存儲目錄,並授權postgres用戶所屬權限。
groupadd postgres
useradd -g postgres postgres
mkdir /pgdata/data
chown postgres:postgres /pgdata -R
chown postgres:postgres /pgdata/data -R

這里pgdata目錄是最初編譯安裝時我創建的安裝目錄,可根據自己情況進行自定義安裝位置,/pgdata/data是數據存儲目錄,可與安裝目錄分屬於不同位置,下面在第二節配置參數中有講到。

第六步,切換用戶,並設置基礎環境變量。
su - postgres
vim ~/.bash_profile

在其文件最底下追加以下配置:

export PGHOME=/pgdata
export PGDATA=/pgdata/data
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

執行以下命令,使其立即生效。為其下一步初始化數據庫做准備,這里也可重啟使其生效。

source ~/.bash_profile
第七步,初始化數據庫,並設置超級管理員用戶密碼( --pwprompt)
initdb -D /pgdata/data/ --pwprompt

image.png

第八步,創建日志存儲目錄,啟動數據庫
mkdir /pgdata/logs
pg_ctl -D /pgdata/data/ -l /pgdata/logs/start_logs.log start
psql

第九步,配置開機自動啟動
待補充~
至此,編譯安裝完成,第二節我們將講解其基礎相關配置。請持續關注。

分享一下阿里雲活動,有需要的可進入購買,最高¥1888雲產品通用代金券
https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ly7hjnah

雙12來了,雲產品低至2折!
https://m.aliyun.com/act/team1212/?params=N.pXSn7Hz1ET


免責聲明!

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



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