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 postgresql

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官網上有明確的操作步驟

image

三、創建用戶和數據庫

1、使用postgres用戶登錄(PostgresSQL安裝后會自動創建postgres用戶,無密碼)

su postgres

image

2、登錄postgresql數據庫

image

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;   // 授權

image

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

\q

四、開啟遠程訪問

1、修改/var/lib/pgsql/12/data/postgresql.conf文件,取消 listen_addresses 的注釋,將參數值改為“*”

image

image

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

image

image

文件分為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

注意: 

默認設置  【host   all   all   127.0.0.1/32  ident】java程序無法通過127.0.0.1訪問數據庫。

需要修改為【host   all   all   127.0.0.1/32  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、使用數據庫連接工具測試連接

image

image

五、額外補充

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 -y 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

image

5、最終已安裝擴展如下:

image


免責聲明!

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



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