Ubuntu 安装Postgresql与PostGIS

news2024/10/6 12:22:05

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总是被重启。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/777383.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sql注入---报错注入

updatexml():对XML文档数据进行查询和修改 extractvalue():对XML文档数据进行查询 floor():取整的函数 前提是未关闭数据库报错函数,对于一些SQL语句的错误…

Java反射、动态代理

文章目录 反射什么是动态代理?程序为什么需要代理?代理长什么样? 反射 java反射机制原理:我们写的源代码是.java文件,通过javac编译后成为.class文件,即字节码文件,程序执行时,JVM会类加载字节码文件到内…

浅谈单片机

目录 1.什么是单片机 2.单片机的作用? 3.单片机的种类 4.如何学好单片机 5. 单片机的就业前景 1.什么是单片机 单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、存储器、输入输出端口和各种外围功能模块于一体…

Rspack 学习了解

一、简介 Rspack GitHub 仓库、Rspack Quick start。 Rspack 是由字节 ByteDance Web Infra 团队基于 Rust 语言开发的 Web 高性能构建工具。 Rust 是种高效、可靠的通用高级语言。其高效不仅限于开发效率,执行效率也是令人称赞的,属于少有兼顾开发效率…

vulnhub打靶--buli_b0x

目录 vulnhub--buli_b0x1.下载靶机2.导入靶机,开启靶机,nmap扫描3.探测目录,发现敏感目录4.通过test.php下载源码5.代码审计6.提权7.总结 vulnhub–buli_b0x 1.下载靶机 Billu_b0x.zip 2.导入靶机,开启靶机,nmap扫描…

分布式 RPC 框架HSF

分布式 RPC 框架HSF 概述HSF架构调用方式优势应用场景 概述 HSF (High-speed Service Framework),高速服务框架,是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。HSF 作为阿里巴巴的基础中间件,联通不同的业务系统,解耦系统间的…

WebSocket笔记

1. websocket介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。 HTTP协议和WebSocket协议对比: HTTP是短连接W…

iOS--动静态库

文章目录 认识动静态库静态库动态库静态的打包静态库的使用动态库的打包动态库的使用 动静态库的本质就是可执行程序的"半成品"。 需要完成一个可执行程序需要经历以下四个步骤: 预处理:完成头文件的展开,去掉注释,宏替换,条件编译…

微信小程序学习笔记(五)——优化

下拉刷新后主动关闭 Page({onPullDownRefresh: function() {// ...wx.stopPullDownRefresh()} })在发起请求时设置 loading,请求结束后关闭 Page({onLoad: function(options) {wx.showLoading({title: 数据加载中...}) // 展示 loadingwx.request({// ...complete: …

leetcode每日一练-第206题-反转链表

一、思路 迭代 二、解题方法 以输入为 1 -> 2 -> 3 -> 4 -> 5 的链表为例 三、code class Solution { public:ListNode* reverseList(ListNode* head) {ListNode* prevnullptr;//反转后的链表ListNode* currhead;//当前更新的原有链表while(curr)//原有链表无值…

【大模型】更强的 LLaMA2 来了,开源可商用、与 ChatGPT 齐平

【大模型】可商用且更强的 LLaMA2 来了 LLaMA2 简介论文GitHubhuggingface模型列表训练数据训练信息模型信息 许可证参考 LLaMA2 简介 2023年7月19日:Meta 发布开源可商用模型 Llama 2。 Llama 2是一个预训练和微调的生成文本模型的集合,其规模从70亿到…

中间件安全-CVE漏洞复现-Weblogic+JBoss+GlassFish

服务攻防测试流程: 使用vulfocus靶场: 案例演示:中间件-Weblogic-工具梭哈 探针默认端口:7001,Weblogic是Oracle公司推出的J2EE应用服务器 使用vulfocus靶场复现漏洞 漏洞:weblogic-cve_2020_14883 启动环…

自然语言处理:赋予AI理解和交流的能力

文章目录 🍀引言🍀NLP的定义与重要性🍀NLP的应用领域🍀学好自然语言处理需要掌握以下知识🍀GPT和自然语言处理🍀总结 🍀引言 自然语言处理(Natural Language Processing,…

Visual Studio创建Web项目时候报错- 找不到“2.0.1“版本的程序包”解决方法

问题描述 在今天我开始想做一个ASP.Net Web 项目时,在创建项目的时候突然报下面这个错,也是试了很多方法,比如卸载重新安装,安装更高版本,我之前用的是2019版本,后面下载了2022的,又出现了新的…

python与深度学习(三):ANN和fashion_mnist

目录 1. 说明2. fashion_mnist实战2.1 导入相关库2.2 加载数据2.3 数据预处理2.4 数据处理2.5 构建网络模型2.6 模型编译2.7 模型训练2.8 模型保存2.9 模型评价2.10 模型测试2.11 模型训练结果的可视化 3. fashion_mnist的ANN模型可视化结果图4. 完整代码 1. 说明 本篇文章是A…

(202307)wonderful-sql:环境搭建(ubuntu 22.04 + mysql 8.0 + workbench/dbeavar,免密码-不建议免哈)

前言 能够再次参加datawhale组织的开源学习是十分兴奋的,看到datawhale能够越办越好我也是由衷地感到高兴。 这次参加的是mysql的学习,我知道这样短期的学习不会对我的能力造成多么大的提升,但是相信经过这次学习,我又将被datawh…

Kubernetes中Pod的扩缩容介绍

Kubernetes中Pod的扩缩容介绍 在实际生产系统中,我们经常会遇到某个服务需要扩容的场景,也可能会遇到由于资源紧张或者工作负载降低而需 要减少服务实例数量的场景。此时可以利用 Deployment/RC 的 Scale 机制来完成这些工作。 Kubernetes 对 Pod 的扩…

java代码审计1之环境搭建

文章目录 1、安装jdk2、配置tomcat3、配置maven3.1、配置环境变量3.2、配置源和maven配置文件 4、idea4.1、配置maven4.2、新建web项目4.3、遇到的问题(弹出404页面) 之前的文章, https://blog.csdn.net/weixin_43970718/article/details/121929434 https://blog.…

(全网最详细!)mysql、redis 、RabbitMQ只能本机访问,怎么改?

如果只能本机访问,怎么改? 一、mysql - 改my.ini 刷脚本 bind-address0.0.0.0 然后重启一下mysql服务 任务管理器-关掉mysql 搜索 计算机管理-重启mysql服务 然后 打开查询,并选择mysql数据,输入这个sql语句,点击运行 sele…

POC!VMWare RCE CVE-2023-20887

漏洞简介 VMWare Aria Operations for Networks (vRealize Network Insight) 在通过 Apache Thrift RPC 接口接受用户输入时容易受到命令注入的攻击。此漏洞允许远程未经身份验证的攻击者以 root 用户身份在底层操作系统上执行任意命令。RPC 接口受可以绕过的反向代理保护。VM…