gpt4 book ai didi

postgresql - 无法使用 GDAL ogr2ogr 远程连接到 postgres

转载 作者:行者123 更新时间:2023-11-29 11:54:19 24 4
gpt4 key购买 nike

我正在尝试通过 Gdal ogr2ogr 将 shapefile 插入 PostgreSQL,命令如下所示:

ogr2ogr -f 'PostgreSQL' PG:dbname='dbname',user='user',host='172.17.2.176',password='password',port='5432' shapefile -nln 'cities '

但是,ogr2ogr 似乎无法连接到位于单独的 docker 容器中的 PosgreSQL。所有连接参数都正确,其他连接成功建立并使用相同的连接参数执行到同一 PostgreSQL 容器。 Laravel 迁移、在对这些表执行命令之前检查数据库和表是否存在的命令行 sql,以及使用 COPY 命令导入 csv 文件,所有这些都使用 ogr2ogr 命令中使用的相同连接参数成功运行到单独的 PostgreSQL docker 容器。

当我运行时:

ogrinfo 'PostgreSQL' PG:dbname='dbname',user='user',host='172.17.2.176',password='password',port='5432'

我收到错误消息:“无法使用以下驱动程序打开数据源 ‘PostgreSQL’...”

列出的驱动程序之一是“-> PostgreSQL”

这意味着 PostgreSQL 驱动程序已加载并启用? <- 一点困惑

正在连接的用户具有 super 用户权限,由此处官方 PostgreSQL docker 镜像中的 .sh 脚本创建:https://github.com/docker-library/postgres/tree/master/9.4

据我所知,通过我对谷歌和文档的研究,一切都是正确的,应该可以正常工作..

super 用户权限、数据库连接的正确语法、加载的驱动程序……我缺少什么?几天来我一直在努力完成这项工作,我需要帮助。

最佳答案

连接字符串的语法很重要,尤其是在使用引号时。查看PostgreSQL driver有关这应该是什么样子的示例。例如,尝试:

$ ogrinfo PG:"host=172.17.2.176 port=5432 user='user' password='password' dbname='dbname'"

一些有用的提示:

  • 如果你经常连接到这个数据库,你可以use environment variables指定主机、端口、数据库名称和/或用户名。
  • A password file可用于避免在键入命令或在脚本中泄露您的密码。

关于postgresql - 无法使用 GDAL ogr2ogr 远程连接到 postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27986769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com