psql和pg_dump版本不匹配

Pab*_*dez 6 postgresql pg-dump psql

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:~$ 
Run Code Online (Sandbox Code Playgroud)

似乎我已经安​​装但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
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Hen*_*nry 13

sudo rm /usr/bin/pg_dump
sudo ln -s /usr/lib/postgresql/9.3/bin/pg_dump /usr/bin/pg_dump
Run Code Online (Sandbox Code Playgroud)


pin*_*yid 6

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

附加

*   *   9.6     localhost:5432     * 
Run Code Online (Sandbox Code Playgroud)

to /etc/postgresql-common/user_clusters,(当然,假设您的邮政局长正在侦听 localhost:5432)。

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

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

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

  • 工作完美,比弄乱链接要好得多。 (2认同)

Mar*_*cny 0

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

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