PostgreSQL版本不兼容

时间:2014-07-14 16:26:02

标签: postgresql

情况如下:

我已使用命令

安装postgresql-9.3
    sudo apt-get install postgresql-9.3:

然后使用pg_ctl启动服务器

    pg_ctl -D /var/lib/postgresql/9.3/main -Z coordinator start

会导致以下错误:

    18:23:50 CEST FATAL:  database files are incompatible with server 2014-07-14 18:23:50 CEST DETAIL:  The data directory was initialized by PostgreSQL version 9.3, which is not compatible with this version 9.2.4.

我不知道版本9.2.4在哪里,我已经检查了所有关于Postgres的文件夹,它们都在文件夹9.3下,甚至尝试pg_clusters。任何人都可以提供一些提示来解决这个问题吗?

dpkg -l | grep postgres给出了结果:

ii  postgres-xc               1.1-2ubuntu2  amd64        write-scalable, synchronous multi-master, transparent PostgreSQL cluster
ii  postgres-xc-client        1.1-2ubuntu2  amd64        front-end programs for Postgres-XC
rc  postgresql-9.3            9.3.4-1       amd64        object-relational SQL database, version 9.3 server
rc  postgresql-client-common  154           all          manager for multiple PostgreSQL client versions
rc  postgresql-common         154           all          PostgreSQL database-cluster manager

我曾尝试删除“所有内容”,然后重新安装 现在我有dpkg -l |的输出grep` postgres:

    ii  postgresql-9.3        9.3.4-1       amd64        object-relational SQL database, version 9.3 server
    ii  postgresql-client-9.3 9.3.4-1       amd64        front-end programs for PostgreSQL 9.3
    ii  postgresql-client-common  154       all          manager for multiple PostgreSQL client versions
    ii  postgresql-common         154       all          PostgreSQL database-cluster manager

现在一切都很好,当我尝试使用pg_ctl启动服务器时,命令行告诉我:

    The program 'pg_ctl' is currently not installed. You can install it by typing:

sudo apt-get install postgres-xc

还有其他启动服务器的方法吗?我应该按照建议安装postgres-xc吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您的计算机上安装了旧的Postgres 9.2(除非您不要混淆两台计算机)。假设Debian缺乏信息。 Ubuntu应该是类似的。

检查

dpkg -l | grep postgres

(除非您在没有包管理器的情况下安装程序,否则您也应该能够解决这个问题。)

如果您不再需要Postgres 9.2(请确保!)将其卸载。然后一切都应该工作得很好。

sudo apt-get remove postgresql-9.2

甚至:

sudo apt-get purge postgresql-9.2

如果您想同时保留两个(或更多)版本,我建议您另外安装postgresql-commonpostgresql-client-common,这有助于实现这一目标。