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总是被重启。
————————————————
版权声明:本文为CSDN博主「大鱼>」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_17486399/article/details/131818888
- Postgresql PostGIS Ubuntupostgresql postgis ubuntu postgresql postgis ubuntu 18.04 postgresql centos7 postgis centos postgresql插件postgis数据库 postgresql ogr命令postgis timescaledb postgresql插件postgis postgresql postgis pgsql postgresql postgis centos7 centos 集群postgresql pgrouting postgis timescaledb postgres postgis ubuntu