Ubuntu 安装Postgresql与PostGIS

1.前言

最近在做GIS分析,采集设备的经纬度点判断是否进出围栏以及是否产生道路偏移报警,在之前的文章有介绍过Windows下使用C#来实现,参考文章:利用Postgresql+Postgis进行空间地理信息分析(道路偏移,进出电子围栏等)_postgres 空间分析_大鱼>的博客-CSDN博客最近新做了一个物联网项目,采用的是Springboot+mongoDB+MySQL,所以考虑使用Linux服务器重新实现这个服务。此文只介绍Ubuntu下安装Postgresql与PostGIS环境。

2.安装Postgresql

2.1.查看apt-get库中的软件版本支持

执行命令:

sudo apt-cache search postgresql

我这边使用的是ubuntu 18.04,查看后发现目前支持postgresql-10

2.2.执行安装命令

sudo apt-get install postgresql-10

2.3.postgresql-common not configured yet.错误处理

执行安装命令后发现postgresql-common不能安装成功,查看报错信息为:postgresql-common not configured yet.

 我们查看/var/lib/dpkg/status文件,找到Package:postgresql-common

如果其Status: install ok half-configured则将其改为install ok installed

 然后再执行安装命令,如果是上述情况,此时应该是可以安装成功了。

3.安装postgis

执行安装脚本:

sudo apt-get install postgis

4.修改数据库默认用户名、密码

PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以这里需要进行密码修改操作。

执行命令登录PostgreSQL:

sudo -u postgres psql

执行命令修改登录PostgreSQL密码:

alter user postgres with password '你的密码';

安装PostgreSQL后,会给创建一个Linux用户,这个用户一定要马上重置密码,否则很容易导致服务器被攻击,我的服务器之前就因为这个密码没有修改被安装了挖矿程序,费了很大劲才彻底清掉挖矿程序。

执行删除原有用户密码的命令:

sudo  passwd -d postgres 

设置新密码命令:

sudo -u postgres passwd  

随后系统会提示输入新密码:

Enter new UNIX password:

确认密码:

Retype new UNIX password: 

最后提示passwd: password updated successfully,代表完成了密码的修改。

5.创建数据库并添加postgis

切换Linux:postgres用户

sudo su postgres  

创建名一个数据库,根据自己的需要起名字

createdb postgis_24_sample

为数据库添加postgis支持。

脚本默认在/usr/share/postgresql目录下,自己可以找找

如果找不到上述目录文件,说明postgis安装失败或者先安装的postgis后安装的postgresql,所以卸载postgis服务,重新安装即可。 

卸载方法:

sudo apt-get purge 'postgis*'
sudo apt-get autoremove 'postgis*

然后执行sql脚本

psql -d postgis_24_sample -f /usr/share/postgresql/10/contrib/postgis-2.4/postgis.sql  
psql -d postgis_24_sample -f /usr/share/postgresql/10/contrib/postgis-2.4/spatial_ref_sys.sql    

如果过程中提示下面的错误:
psql: could not connect to server: No such file or directory
 Is the server running locally and accepting
 connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

可以重启一下postgres服务,执行重启命令:

sudo service postgres restart

6.使用pgAdmin4连接数据库

我们可以使用pgAdmin4连接到服务器上的postgresql数据库,如果报下面的错误,则确认一下服务是否开启了远程连接。

错误提示:could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "124.223.60.234" and accepting TCP/IP connections on port 5432?
修改配置文件postgresql.conf:

sudo vim /etc/postgresql/10/main/postgresql.conf

如果listen_addresses 被注释掉,则去掉#注释,并将值修改为*

另外修改pg_hba.conf

sudo vim /etc/postgresql/10/main/pg_hba.conf

 在文件中添加 host all all 0.0.0.0/0 trust

 最后登录成功

考虑到安全,建议上述如果非必要不要对所有外网都开启访问,可以指定对应的IP或者只允许内网访问,否则很容易被黑。导致postgresql总是被重启。

猜你喜欢

转载自blog.csdn.net/qq_17486399/article/details/131818888