linux(centos7)下如何安裝postgresql和postgis並使用qgis發布shp數據
標簽(空格分隔): GIS
操作操作系統:為阿里雲centos7
我也是第一次在linux下安裝postgresql,也是遇到很多問題,特此紀記錄一些
首先安裝postgresql有兩種方式
1、通過yum安裝
2、編譯安裝
這里我們用更簡單的yum安裝
1、安裝之前可以通過yum search postgresql來搜索自己需要的安裝包版本。
建議9.1以上(支持postgis擴展)。
2、使用yum install postgresql-server來安裝,當看到下面的complete就表示安裝成功
Installed:
postgresql-server.x86_64 0:9.2.24-4.el7_8
Dependency Installed:
postgresql.x86_64 0:9.2.24-4.el7_8
Complete!
3、安裝postgresql-server會附帶安裝上postgres客戶端,因此不必重復安裝。安裝完成,postgresql操作相關的命令都會添加到/usr/bin目錄下,可以在命令行下直接使用。
任意地方使用psql --version來檢查是否安裝成功
[root@izbp18r9ee0upuclbjiv6gz ~]# psql --version
psql (PostgreSQL) 9.2.24
4、安裝成功后會同時生成linux下的postgres用戶,目前只有通過非root用戶才能登陸postgresql,登陸之前還要通過postgresql-setup initdb初始化數據庫,初始化數據庫之后會在/var/lib/pgsql/data下面生成相應的配置文件。
[root@izbp18r9ee0upuclbjiv6gz ~]# postgresql-setup initdb
Initializing database ... OK
5、修改配置文件使得root用戶也能登陸postgresql和解決不能在遠程連接postgresql問題。
(1)改配置文件/var/lib/pgsql/data下面的pg_hba.conf,將#local all all peer修改為:local all all trust
(2)配置文件中添加一句host all all 0.0.0.0/0 md5
(3)修改/var/lib/pgsql/data下面的postgresql.conf配置文件中的listen_addresses屬性為"*"並打開注釋
6、通過service postgresql start啟動服務
service postgresql start
7、通過netstat -nat來查看端口號0.0.0.0:5432是否已經監聽,如果這里是127.0.0.1:5432則代表只監聽本地,不能遠程登陸
[root@izbp18r9ee0upuclbjiv6gz ~]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:32000 0.0.0.0:* LISTEN
tcp 0 0 172.19.54.89:22 113.218.44.156:43911 ESTABLISHED
tcp 0 0 172.19.54.89:53078 203.119.214.116:443 TIME_WAIT
tcp 0 0 127.0.0.1:32000 127.0.0.1:31000 ESTABLISHED
tcp 0 0 172.19.54.89:38496 100.100.30.25:80 ESTABLISHED
tcp 0 0 172.19.54.89:22 113.218.44.156:43910 ESTABLISHED
tcp 0 0 172.19.54.89:22 117.136.89.171:20605 ESTABLISHED
tcp 0 0 172.19.54.89:22 117.136.89.171:47707 ESTABLISHED
tcp 0 36 172.19.54.89:22 117.136.89.171:47179 ESTABLISHED
tcp 0 0 127.0.0.1:31000 127.0.0.1:32000 ESTABLISHED
tcp6 0 0 :::5432 :::* LISTEN
9、本地登陸測試輸入命令psql -U postgres來使用postgres用戶登陸
[root@izbp18r9ee0upuclbjiv6gz ~]# psql -U postgres
psql (9.2.24)
Type "help" for help.
postgres=# \q
10、遠程登陸前需要修改密碼在在postgresql界面輸入\password來修改密碼
postgres=# \password
Enter new password:
Enter it again:
11、安裝postgis用來發布基礎地理數據如shp數據,在linux命令行輸入yum install postgis自動安裝
Installed:
postgis.x86_64 0:2.0.7-2.el7
Complete!
12、登陸postgresql執行sql語句CREATE EXTENSION postgis
13、使用QGIS連接postgresql發布
注意:連接參數service可以不寫,database寫postgres
發布的shp數據要注意字符編碼格式,不能發布GBK編嗎格式數據
14、記得添加阿里雲防火牆規則把5432端口打開
