PostgreSQL 安装 PostGIS 后无法创建扩展: ERROR: 无法打开扩展控制文件~/postgis.control”: 没有这个文件或目录

PostgreSQL 安装 PostGIS 后无法创建扩展: ERROR: 无法打开扩展控制文件~/postgis.control”: 没有这个文件或目录

在本文中,我们将介绍在安装了 PostGIS 后无法创建扩展的这个错误,并提供解决方法和示例说明。

阅读更多:PostgreSQL 教程

问题描述

当我们在 PostgreSQL 数据库中安装了 PostGIS 扩展后,有时可能会遇到以下错误信息:

ERROR: 无法打开扩展控制文件~/postgis.control": 没有这个文件或目录
SQL

这个错误通常发生在尝试通过执行 CREATE EXTENSION postgis; 或其他创建扩展的命令时。

解决方法

1. 确认 PostGIS 安装

在解决该错误之前,首先需要确认 PostGIS 是否正确安装。可以使用以下命令检查是否已经安装了 PostGIS:

SELECT name, default_version, installed_version
FROM pg_available_extensions
WHERE name = 'postgis';
SQL

如果没有正确安装 PostGIS,您需要按照正确的步骤进行安装。根据您的操作系统和 PostgreSQL 版本,可以查阅相关的文档或参考官方网站。

2. 确认扩展控制文件位置

错误信息中提到的控制文件路径为 ~/postgis.control,其中 ~ 表示当前用户的主目录。在大多数情况下,PostgreSQL 默认的扩展控制文件路径与数据目录相关联。

使用以下命令可以查看当前数据库的数据目录位置:

SHOW data_directory;
SQL

确保在该目录下存在 share/extension 目录,并且该目录中有名为 postgis.control 的文件。

如果该文件不存在,可能是由于 PostGIS 未正确安装或者没有正确指定数据目录导致的。您可以尝试重新安装 PostGIS,并确保在安装过程中指定正确的数据目录。

3. 修改配置文件

如果您确认 PostGIS 已正确安装,并且扩展控制文件位于正确的位置,但仍然遇到该错误,可能是由于 PostgreSQL 的配置文件中缺少相关设置。

编辑 PostgreSQL 的配置文件 postgresql.conf,可以通过以下命令获取配置文件位置:

SHOW config_file;
SQL

在配置文件中添加以下内容:

shared_preload_libraries = 'postgis'
Conf

保存并重新启动 PostgreSQL 服务。

示例说明

假设我们使用的是 PostgreSQL 13.4 版本,并正确安装了 PostGIS,在数据目录下的 share/extension 目录中有 postgis.control 文件。

我们可以通过以下步骤创建 PostGIS 扩展并验证是否成功:

  1. 打开命令行工具,连接到 PostgreSQL 数据库。

  2. 执行以下命令创建 PostGIS 扩展:

    CREATE EXTENSION postgis;
    
    SQL
  3. 如果创建成功,将会显示以下消息:

“`sql
CREATE EXTENSION
“`

  1. 现在可以使用 postgis 扩展提供的功能。

总结

在本文中,我们介绍了当在安装了 PostGIS 后无法创建扩展时出现的错误,并提供了解决方法和示例说明。在出现该错误时,我们需要确认 PostGIS 是否正确安装,扩展控制文件是否位于正确的位置,并在需要的情况下修改 PostgreSQL 的配置文件。通过正确配置和安装,我们可以成功创建 PostGIS 扩展并使用其功能来处理地理空间数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册