Centos 7 上安裝Postgresql10.5和PostGIS

ywxj_001發表於2018-09-26

設定/etc/resolv.conf

讓linux server可以上網

檢視postgresql源:

yum list | grep postgresql

Centos 7 上安裝Postgresql10.5和PostGIS

首先安裝PostgreSQL的rpm:

yum install https: / /download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg -centos1 - 10 - 2 .noarch.rpm -y

Centos 7 上安裝Postgresql10.5和PostGIS

yum list | grep postgresql

Centos 7 上安裝Postgresql10.5和PostGIS

安裝postgresql10-contrib和postgresql10-server。

yum install postgresql10-contrib postgresql10-server -y

這樣會給我們的系統增加一個postgres使用者。

Centos 7 上安裝Postgresql10.5和PostGIS

cat /etc/passwd

Centos 7 上安裝Postgresql10.5和PostGIS

修改預設資料目錄

Postgresql預設的資料目錄是/var/lib/pgsql/版本號/data目錄,這要求你在/var下有足夠的儲存空間,我們這裡將其換掉,假設/home的空間很大。

首先在/home下建立一個Postgresql的資料目錄,指定所有者postgres同時分配許可權

mkdir /home/postgresql_data

chown postgres:postgres /home/postgresql_data

chmod 750 /home/postgresql_data

Centos 7 上安裝Postgresql10.5和PostGIS

設定環境變數:

export PATH=/usr/pgsql- 10 /bin: $PATH

export LD_LIBRARY_PATH=/usr/pgsql- 10 /lib

export PGDATA=/home/postgresql_data

切換到postgres使用者,使用initdb初始化資料庫,這樣在/home/postgresql_data下會增加很多東西。

Centos 7 上安裝Postgresql10.5和PostGIS

修改/usr/lib/systemd/system/postgresql-10.service檔案的內容,在#Location of database direcotry裡面指定正確的PGDATA:

#Location of database directory Environment = PGDATA = /home/postgresql _data

Centos 7 上安裝Postgresql10.5和PostGIS

Centos 7 上安裝Postgresql10.5和PostGIS

配置資料庫服務開機啟動並立即啟動資料庫服務:

systemctl enable postgresql-10.service 

service postgresql-10 start

service postgresql- 10 status

Centos 7 上安裝Postgresql10.5和PostGIS Centos 7 上安裝Postgresql10.5和PostGIS

修改密碼:

passwd postgres

Centos 7 上安裝Postgresql10.5和PostGIS

\l 列出當前庫: 

Centos 7 上安裝Postgresql10.5和PostGIS

安裝PostGIS:

先安裝幾個工具包

yum  install wget net -tools epel -release -y

然後安裝postgis

[root@td-db-t01 ~]# yum install postgis24_10 postgis24_10-client -y

yum install postgis24_10 postgis24_10 -client -y

安裝擴充工具

yum install ogr_fdw10 -y yum install pgrouting_10 -y

建立資料庫spatial_testdb

CREATE DATABASE spatial_testdb OWNER postgres;

進入

\c spatial_testdb

安裝PostGis擴充套件

spatial_testdb=# CREATE EXTENSION postgis;

spatial_testdb=# CREATE EXTENSION postgis_topology;

spatial_testdb=# CREATE EXTENSION ogr_fdw;

Centos 7 上安裝Postgresql10.5和PostGIS

然後可以驗證是否安裝成功

Centos 7 上安裝Postgresql10.5和PostGIS

建立空間資料表

儲存城市資訊(cities),並新增一個儲存空間位置的列

spatial_testdb=# CREATE TABLE cities(id varchar ( 20 ),name varchar ( 50 ));

spatial_testdb=# SELECT AddGeometryColumn ( 'cities' , 'the_geom' , 4326 , 'POINT' , 2 );

Centos 7 上安裝Postgresql10.5和PostGIS

查詢

spatial_testdb=# SELECT * FROM cities;

spatial_testdb=# SELECT id, ST_AsText(the_geom), ST_AsEwkt(the_geom), ST_X(the_geom), ST_Y(the_geom) FROM cities;

Centos 7 上安裝Postgresql10.5和PostGIS

空間查詢城市相互距離

Centos 7 上安裝Postgresql10.5和PostGIS

設定遠端連線

修改配置檔案

首先修改/home/postgresql_data/pg_hba.conf,改為: 

原先是:

Centos 7 上安裝Postgresql10.5和PostGIS

改為:

Centos 7 上安裝Postgresql10.5和PostGIS

其次修改/home/postgresql_data/postgresql.conf,改為: 

Centos 7 上安裝Postgresql10.5和PostGIS

改為:

Centos 7 上安裝Postgresql10.5和PostGIS


Centos 7 上安裝Postgresql10.5和PostGIS

改為:

Centos 7 上安裝Postgresql10.5和PostGIS


之後重啟服務

service postgresql-10 restart

Centos 7 上安裝Postgresql10.5和PostGIS

重要 :開啟伺服器防火牆

firewall - cmd -- add - service=postgresql -- permanent   開放postgresql服務

firewall - cmd -- reload   過載防火牆

Centos 7 上安裝Postgresql10.5和PostGIS

遠端連線  

這裡使用pgAdmin進行遠端連線,下載地址: 。選擇建立伺服器,填入相應內容,主機名稱填自己伺服器的IP 。

Centos 7 上安裝Postgresql10.5和PostGIS


如果你的系統上沒有安裝使用命令安裝

安裝firewalld 防火牆 yum install firewalld

開啟服務 systemctl start firewalld.service

關閉防火牆 systemctl stop firewalld.service

開機自動啟動 systemctl enable firewalld.service

關閉開機制動啟動 systemctl disable firewalld.service


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2214946/,如需轉載,請註明出處,否則將追究法律責任。

相關文章