不能连接到与GDAL ogr2ogr远程postgres

我试图通过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似乎无法连接到单独的泊坞窗容器中的PosgreSQL。 所有的连接参数都是正确的,其他的连接都被成功的创build并且使用相同的连接参数执行到同一个PostgreSQL容器。 Laravel迁移,在这些表上执行命令之前检查数据库和表是否存在的命令行sql,以及使用COPY命令导入csv文件,都使用ogr2​​ogr命令中使用的相同连接参数成功运行到单独的PostgreSQL泊坞石器容器。

当我运行:

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

我得到一个错误:“无法打开数据源`PostgreSQL与以下驱动程序…”

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

这意味着PostgreSQL驱动程序被加载和启用? < – 一个混乱点

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

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

超级用户权限,数据库连接正确的语法,驱动程序加载..我错过了什么? 我一直在努力做这个工作几天,我需要帮助。

连接string的语法很重要,特别是使用引号。 有关这个应该是什么样子的示例,请参阅PostgreSQL驱动程序 。 例如,尝试:

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

另外,如果你经常连接到这个数据库,你可以使用环境variables来帮忙。