linux(centos7)下如何安装postgresql和postgis并使用qgis发布shp数据
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端口打开