$ libdir / odbc_fdw是missilng

时间:2016-07-26 11:11:37

标签: postgresql gis postgis cartodb

我正在使用cartoDB和Postgres 9.3,包括PostGIS。当我尝试在cartoDB中创建开发用户时,我收到此错误:

PG::Error: ERROR: could not access file "$libdir/odbc_fdw": No such file or directory: CREATE EXTENSION IF NOT EXISTS odbc_fdw SCHEMA publi

另外,当我尝试在Postgres中运行odbc_fdw扩展时,我得到了同样的错误。

知道怎么解决吗?

3 个答案:

答案 0 :(得分:1)

好像你没有正确安装odbc_fdw。

对于以下内容,我假设您使用的是UNIX。

  • 签出或下载并解压缩源代码。
  • 看到安装了PostgreSQL,包括头文件(如果使用安装包,这通常是“开发”包)。
  • 查看unixODBC及其头文件已安装。
  • 确保pg_config。{/ li>中有PATH

然后切换到odbc_fdw目录并输入

make          # compile odbc_fdw
make install  # install it in the correct place

第二步可能必须是root

PostgreSQL在您可以使用odbc_fdw.so显示的目录中搜索pg_config --libdir等扩展库。

答案 1 :(得分:0)

可能会有所帮助:

- [http]
     proxy = http://127.0.0.1:8087
     sslVerify = false

答案 2 :(得分:0)

我们在Windows 7机器上遇到了这个问题,并解决了它。 odbc_fdw就是这个(对于pg 9.6和64bit平台):http://www.postgresonline.com/journal/archives/372-ODBC-FDW-now-supports-9.5-and-9.6.html

问题是:上面编译的库.zip有两个文件夹:

  • \ lib ,仅包含" odbc_fdw.dll"
  • \ share ,其中包含"扩展程序"子文件夹(包含.control文件和几个.sql文件)
  • 两个指令.txt文件

由于上述.zip在.txt文件或其他地方没有安装信息,因为没有经验的postgres用户,我们想复制

  • " odbc_fdw.dll"在[postgres_install] \ pg96 \ lib(直接)
  • "扩展名" [postgres_install] \ pg96 \ share(直接)
  • 下的子文件夹

并且,尝试安装扩展程序,得到上述错误..."无法访问文件" $ libdir / odbc_fdw":没有这样的文件或目录:"。同时发出CLI命令

[postgres_install] \ pg_config --libdir

答案是"正确":" C:/ POSTGR~1 / pg96 / lib"

后来才意识到\ lib和\ share都有" postgresql"子文件夹,我们试图移动

  • " odbc_fdw.dll"在[postgres_install] \ pg96 \ lib \ postgresql
  • "扩展名" [postgres_install] \ pg96 \ share \ postgresql
  • 下的子文件夹

并且,重新启动服务后,它没有错误。我们可以创建扩展,通过odbc连接外部服务器,并能够查询一个foreing mysql测试表,将其与本地postgreql表连接......一切正常。

所以,错误信息有点误导,因为你无法理解是否" $ libdir"没有正确解决(在所有错误消息显示未解决之后),或者,如果是,为什么"文件"找不到"那里"在哪儿。另外,.zip文件指令也没有设置 来安装这些文件。

当然你必须猜测有一个隐含的" postgresql"子文件夹,在两种情况下都要考虑到。在我们的情况下,这就足够了......