2

我使用的是 ubuntu 12.04,我已经安装了 postgis2.1 和 postgresql9.1 ......我是一个新手!......我按照这个教程来创建一个模板数据库:http ://linfiniti.com/ 2012/05/installing-postgis-2-0-on-ubuntu/我被卡住了,不知道现在该怎么办......

当我尝试执行以下命令时:

psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.0/postgis.sql

我有以下错误(我只复制粘贴到末尾,因为对于不同的行号是相同的错误):

psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:6050:错误:当前事务被中止,命令被忽略直到事务块结束
psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:6056:错误:当前事务被中止,命令被忽略直到事务块结束
回滚

我注意到每个错误都链接到我执行的脚本 postgis.sql 中以“LANGUAGE ....”开头的命令我在互联网上看到这种错误可能是由于未安装的 plpgsql但这不是我的情况,因为当我输入:

createlang -d template_postgis2 plpgsql

(如教程中给出的)机器返回

createlang:语言“plpgsql”已安装在数据库“template_postgis2”中

有没有人知道发生了什么?和/或我应该怎么做?也许因为我使用的是 postgis2.1 而不是 2.0,就像在教程 linfinity.com 中一样,它把事情搞砸了?

编辑:错误消息的开头如下:

$ psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql
放
开始
psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:47:错误:语言c的权限被拒绝
psql:/usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql:52:错误:当前事务被中止,命令被忽略直到事务块结束
4

2 回答 2

3

在 Postgres 9.1 中有一种创建空间数据库的新方法:

psql -d template_postgis2 -c "CREATE EXTENSION postgis;"
于 2012-09-17T09:40:36.173 回答
0

刚刚在某个论坛上找到:

sudo ldconfig

更新:在官方文档中找到了这个建议:

在 Linux 平台上,可能需要在安装每个库后运行 ldconfig 命令。

修复了从 postgis 模板创建数据库时可能出现的 postres 错误

于 2013-08-06T20:57:34.997 回答