psql和pg_dump版本不匹配

时间:2014-05-21 21:05:13

标签: postgresql psql pg-dump

omnia@ubuntu:~$ psql --version
psql (PostgreSQL) 9.3.4
omnia@ubuntu:~$ pg_dump --version
pg_dump (PostgreSQL) 9.2.8
omnia@ubuntu:~$ dpkg -l | grep pg
ii  gnupg                            1.4.11-3ubuntu2.5                 GNU privacy guard - a free PGP replacement
ii  gpgv                             1.4.11-3ubuntu2.5                 GNU privacy guard - signature verification tool
ii  libgpg-error0                    1.10-2ubuntu1                     library for common error values and messages in GnuPG components
ii  libpq5                           9.3.4-1.pgdg60+1                  PostgreSQL C client library
ii  pgdg-keyring                     2013.2                            keyring for apt.postgresql.org
ii  postgresql-9.2                   9.2.8-1.pgdg60+1                  object-relational SQL database, version 9.2 server
ii  postgresql-9.3                   9.3.4-1.pgdg60+1                  object-relational SQL database, version 9.3 server
ii  postgresql-client-9.2            9.2.8-1.pgdg60+1                  front-end programs for PostgreSQL 9.2
ii  postgresql-client-9.3            9.3.4-1.pgdg60+1                  front-end programs for PostgreSQL 9.3
ii  postgresql-client-common         154.pgdg60+1                      manager for multiple PostgreSQL client versions
ii  postgresql-common                154.pgdg60+1                      PostgreSQL database-cluster manager
ii  python-gnupginterface            0.3.2-9.1ubuntu3                  Python interface to GnuPG (GPG)
ii  unattended-upgrades              0.76ubuntu1                       automatic installation of security upgrades
ii  update-manager-core              1:0.156.14.13                     manage release upgrades
omnia@ubuntu:~$ 

似乎我已经安​​装了但pg_dump卡在旧版本中?很奇怪,因为两者都链接到相同的"包装":

omnia@ubuntu:~$ readlink /usr/bin/psql
../share/postgresql-common/pg_wrapper
omnia@ubuntu:~$ readlink /usr/bin/pg_dump
../share/postgresql-common/pg_wrapper

我做错了什么?

3 个答案:

答案 0 :(得分:13)

sudo rm /usr/bin/pg_dump
sudo ln -s /usr/lib/postgresql/9.3/bin/pg_dump /usr/bin/pg_dump

答案 1 :(得分:4)

如果您的 pg_dump 是sym链接到 pg_wrapper ,那么最好的解决方法是告诉 pg_wrapper 使用哪个版本。

追加

*   *   9.6     localhost:5432     * 

/etc/postgresql-common/user_clusters,(假设您的邮局主管正在收听localhost:5432当然)。

然后修复了所有 pg _ 命令的问题,不涉及破坏任何内容,并且可以很好地扩展您可能希望安装的未来版本。

有关详细信息和其他选项,请参阅man pg_wrapperman postgresqlrc

注意这个答案专门用于Debian / Ubuntu,并且最有可能在安装了两个版本的pg时适用,例如。升级后。

答案 2 :(得分:0)

pgdg60包后缀让我相信这些包不是来自官方的Ubuntu存储库。尝试查看/etc/apt/sources.list/etc/apt/sources.list.d,看看您是否有任何第三方PPA或指定的存储库。

尝试从Ubuntu repo获取Postgresql软件包(虽然这些软件可能有点过时,具体取决于您的Ubuntu版本),或者从官方的postgres repo获取(它们为Ubuntu / Debian提供了一个apt服务器): https://wiki.postgresql.org/wiki/Apt