1. 程式人生 > 其它 >Centos7線上安裝PostgreSQL和PostGIS

Centos7線上安裝PostgreSQL和PostGIS


一、版本資訊:

CentOS版本:CentOS-7-x86_64-Minimal-1810

PostgreSQL版本: PostgreSQL 12.0

PostGIS版本:postgis31

二、PostgresSQL + PostGIS 安裝

1、官網安裝連結:

PostgreSQL: Linux downloads (Red Hat family)

2、升級所有包同時也升級軟體和系統核心

yum -y update

3、安裝rpm檔案

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

4、安裝PostgreSQL客戶端

使用 yum search postgresql* 命令可以看到多個版本的PostgreSQL,這裡我選擇了PostgreSQL12。

yum install -y postgresql12

5、安裝PostgreSQL服務端

yum install -y postgresql12-server

6、初始化

/usr/pgsql-12/bin/postgresql-12-setup initdb

7、設定自動啟動並且啟動postgresql服務

systemctl enable postgresql-12
systemctl start postgresql-12

8、postgresql
官網
上有明確的操作步驟

三、建立使用者和資料庫

1、使用postgres使用者登入(PostgresSQL安裝後會自動建立postgres使用者,無密碼)

su postgres

2、登入postgresql資料庫

3、建立使用者和資料庫並授權

create user test_user with password '123456';            // 建立使用者
create database test_db owner test_user;                 // 建立資料庫
grant all privileges on database test_db to test_user;   //
授權

4、退出psql(輸入 \q 再按回車鍵即可)

\q

四、開啟遠端訪問

1、修改/var/lib/pgsql/12/data/postgresql.conf檔案,取消 listen_addresses 的註釋,將引數值改為“*”

2、修改/var/lib/pgsql/12/data/pg_hba.conf檔案,增加下圖紅框部分內容

檔案分為5列,分別是TYPE、DATABASE、USER、ADDRESS、METHOD,可以對不同IP地址的使用者設定不同資料庫的訪問許可權。最後一列METHOD的解析如下:
trust 任何連線都允許,不需要密碼
reject 拒絕符合條件(前面幾個條件)的請求
MD5 接收一個MD5加密過的密碼
password 接收一個密碼來登陸,只在可信的網路使用這種方式
gss 使用gssapi認證,只在tcp/ip連線可用
sspi 只在windows可用的一種方式
krb5 不常用,只在TCP/IP可用
ident 使用作業系統使用者名稱認證,驗證它是否符合請求的的資料庫使用者名稱
ldap 使用LDAP伺服器認證
cert 使用ssl客戶端認證
pam 使用作業系統的pam模組服務
如果要求所有IP都是使用密碼登入,則配置為host all all 0.0.0.0/0 md5

3、切換到root使用者,重啟postgresql服務

systemctl restart postgresql-12.service

4、關閉防火牆

檢視防火牆狀態
firewall-cmd --state

停止firewall
systemctl stop firewalld.service

開啟firewall
firewall-cmd --state

禁止firewall 開機啟動
systemctl disable firewalld.service

5、使用資料庫連線工具測試連線

五、額外補充

1、修改預設生成的 postgres 使用者密碼(此postgres非上面的postgres使用者,此為資料庫的使用者,上面的為作業系統的使用者)

su - postgres
psql -U postgres
alter user postgres with encrypted password '123456';

2、服務啟動、關閉、重啟、檢視狀態命令

systemctl start postgresql-12.service     // 啟動服務
systemctl stop postgresql-12.service      // 關閉服務
systemctl restart postgresql-12.service   // 重啟服務
systemctl status postgresql-12.service    // 檢視狀態


六、安裝postgis和pgRouting

1、安裝postgis的依賴包

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

2、安裝postgis

yum install postgis31_12.x86_64

3、安裝完畢後切換為postgres使用者,開啟擴充套件

// 開啟外掛  
# su postgres  
# psql  
// 開啟pgsql的外掛  
postgres=# create extension postgis;  
postgres=# create extension postgis_topology;  
postgres=# create extension fuzzystrmatch;  
postgres=# create extension address_standardizer;  
postgres=# create extension address_standardizer_data_us;  
postgres=# create extension postgis_tiger_geocoder; 
//檢視版本,驗證安裝是否成功
postgres=# SELECT PostGIS_full_version();

4、安裝pgRouting

使用 yum search pgrouting 命令可以看到多個版本的pgrouting,這裡我選擇了pgrouting12。

yum install pgrouting_12

5、最終已安裝擴充套件如下: