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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
10天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
19天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
22天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
36 4
|
20天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
16天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
125 0
|
关系型数据库 MySQL 数据库
docker中安装数据库常见的问题
docker中安装数据库常见的问题http://www.bieryun.com/3159.html Mysql怎么改密码 MySQL修改root密码的多种方法 在 Navicat for MySQL 下面直接执行 SET PASSWORD FOR ‘root’@’localhost’ = PAS.
2186 0
|
关系型数据库 MySQL 数据库
docker中安装数据库常见的问题
docker中安装数据库常见的问题 Mysql怎么改密码 MySQL修改root密码的多种方法 在 Navicat for MySQL 下面直接执行 SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpass’); 就可以 方法1: 用SET .
1473 0
|
3天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
3天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
24 6
|
3天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
13 5