Docker【应用 03】给Docker部署的PostgreSQL数据库安装PostGIS插件(安装流程及问题说明)

简介: Docker【应用 03】给Docker部署的PostgreSQL数据库安装PostGIS插件(安装流程及问题说明)

1.问题说明

项目要做跟GIS相关的应用,导入数据时出现以下报错:

[ERR] ERROR:  relation "geometry_columns" does not exist

原因是:PostgreSQL数据库没有PostGIS扩展。我们当前的项目为了部署简便,PG数据库使用的是Docker部署,这个时候安装插件就跟非Docker的有一些不同了。

2.(旧的)安装流程

# 进入容器
docker exec -it CONTAINER ID /bin/bash

2.1 更新apt-get

以下操作为root用户执行:

# 1.更新 apt-get 否则安装 sudo\vim 时可能会报错 E: Unable to locate package sudo
apt-get update
# 2.安装 sudo 和 vim
apt-get install sudo
apt-get install vim

为什么要安装sudovim:

  • 给PostgreSQL安装插件要使用postgre用户进行安装,这里就用到了sudo命令。
  • postgre用户想要使用sudo命令要对/etc/sudoers进行修改,所以用到了vim。

2.2 修改sudoers

不修改的话报错:postgres is not in the sudoers file. This incident will be reported.

# 3.修改 sudoers
vim /etc/sudoers
  # 添加内容 无需密码拥有root权限
  postgres ALL=(ALL:ALL) NOPASSWD:ALL

2.3 安装PostGIS

# 4.切换到 postgres 用户
su postgres
# 5.安装 PostGIS (根据安装的PG版本进行安装)
sudo apt-get install postgresql-12-postgis-3 postgresql-12-postgis-3-dbgsym postgresql-12-postgis-3-scripts

2.4 创建扩展并验证

# 6.应用扩展
CREATE EXTENSION postgis;
# 7.验证
SELECT postgis_full_version();
# 结果
POSTGIS="3.3.1 3786b21" [EXTENSION] PGSQL="120" GEOS="3.9.0-CAPI-1.16.2" PROJ="7.2.1" LIBXML="2.9.10" LIBJSON="0.15" LIBPROTOBUF="1.3.3" WAGYU="0.5.0 (Internal)"

3.(新的)安装流程

# 进入容器
docker exec -it CONTAINER ID /bin/bash

以下操作为root用户执行:

# 1.更新 apt-get 
apt-get update
# 未更新直接安装会报错
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package postgresql-12-postgis-3
E: Unable to locate package postgresql-12-postgis-3-dbgsym
E: Unable to locate package postgresql-12-postgis-3-scripts
# 2.安装PostGIS
apt-get install postgresql-12-postgis-3 postgresql-12-postgis-3-dbgsym postgresql-12-postgis-3-scripts

其他流程不变,新的安装流程,没有切换到postgres用户而是使用root用户进行的安装。

更新列表:

  • 20221222 更新新的安装流程
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
12月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1413 108
|
10月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
10月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
846 52
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
10月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
8385 8
|
11月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
557 13
|
11月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
520 8
|
11月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
2720 0
|
Oracle 关系型数据库 数据库
docker下postgresql安装
docker下postgresql安装
777 0
docker下postgresql安装

热门文章

最新文章