Postgres未能安装,“意外的角色”;“'

时间:2013-07-18 02:53:38

标签: postgresql installation postgresql-9.1 postgresql-9.2

所以今天早上我无法从Ubuntu repo安装Postgres 9.1。我尝试从postgres repo安装9.2,但如果失败并出现同样的错误。错误跟踪实际上没有信息(我甚至不知道这个错误的来源是什么)。谷歌没有告诉我任何事情。

在安装过程中失败并出现相同的错误,我尝试手动创建群集。但...

root@Ubuntu-1304-raring-64-minimal /home/tmp # pg_createcluster 9.2 main --start
Creating new cluster (configuration: /etc/postgresql/9.2/main, data:                 /var/lib/postgresql/9.2/main)...
FATAL:  syntax error at line 5067: unexpected character ";"
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/9.2/main"
Error: initdb failed

有什么问题?

2 个答案:

答案 0 :(得分:1)

根据dpkg -l 'postgres*'的输出结果:

ii  postgresql-9.2                               9.2.4-1.pgdg12.4+1          amd64                       object-relational SQL database, version 9.2 server
un  postgresql-client                                                                              (no description available)
ii  postgresql-client-9.1                        9.1.9-1ubuntu1              amd64                       front-end programs for PostgreSQL 9.1
ii  postgresql-client-9.2                        9.2.4-1.pgdg12.4+1          amd64                       front-end programs for PostgreSQL 9.2
ii  postgresql-client-common                     140                         all                         manager for multiple PostgreSQL client versions
ii  postgresql-common                            140                         all              

已安装postgresql-9.2(请参阅最左侧列中的ii标志),以及来自pgdg和ubuntu存储库的9.1和9.2的客户端工具。

无论如何,pg_createcluster遇到的错误很不寻常。从输出,尤其是行号,看起来基础initdb在播放postgres.bki文件时失败。

对于9.2,此文件为:/usr/share/postgresql/9.2/postgres.bki。它包含类似sql的方言中的低级命令,用预先初始化的数据(模板数据库,预定义的类型和视图等)填充集群。

很难想象这个文件会被破坏,特别是因为你在安装包含不同postgres.bki文件的9.1时遇到了类似的问题。

你仍然可以检查一下5067行及周围的情况。在我的9.2.4的构建目录中,我有这个:

insert OID = 1 ( template1 10 ENCODING "LC_COLLATE" "LC_CTYPE" t t -1 0 0 1663 _null_)

整个文件中没有;个字符。

除此之外,您可能希望删除整个postgresql安装以从干净的基础重新启动:

# purge client packages
dpkg --purge postgresql-client-9.1 postgresql-client-9.2 postgresql-client-common
# purge server packages
dpkg --purge postgresql-9.2 postgresql-common

答案 1 :(得分:0)

你......试图安装postgres?

这些命令中的任何一个都可以帮助您:

sudo apt-get install postgresql-9.1
sudo apt-get install postgresql-9.2

这是download page

如果这些命令返回错误,则错误响应将包含在您的问题中。

我担心以前从未尝试过手动创建群集,所以我可能没什么帮助。