postgres 从 9.1 更新至 9.2,所需数据库更新失败

postgres 从 9.1 更新至 9.2,所需数据库更新失败

从 postgres 9.1 升级到 9.2 时,系统提示数据库需要升级,因此我输入升级命令后得到以下信息

$ sudo service postgresql upgrade
Stopping postgresql service:                               [  OK  ]
Upgrading database:                                        [FAILED]
See /var/lib/pgsql9/pgupgrade.log for details.

日志文件的内容/var/lib/pgsql9/pgupgrade.log

Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories                 ok
Checking cluster versions                                   ok

connection to database failed: fe_sendauth: no password supplied


could not connect to old postmaster started with the command:
"/usr/lib64/pgsql/postgresql-9.1/bin/pg_ctl" -w -l "pg_upgrade_server.log" -D "/var/lib/pgsql9/data-old" -o "-p 5432 -b  -c listen_addresses='' -c unix_socket_permissions=0700 -c unix_socket_directory='/var/lib/pgsql9'" start
Failure, exiting

我使用带密码的 postgres 启用了类似这样的功能pg_connect("host=localhost port=5432 dbname=pgdbname user=postgres password=postgrespassword");

我毁了yum update我的系统,然后就陷入了这种情况。你能建议我恢复所有功能的方法吗?那太好了!

答案1

解决方法

在升级期间编辑您的pg_hba.conf并设置连接localtrust

背景

亚马逊的 Amazon Linux 团队做出了一个奇怪的决定,通过简单的“yum 更新”对 PostgreSQL 进行主要版本升级。大多数供应商对不同的主要版本使用不同的软件包名称,因此用户必须做出明确的升级决定。亚马逊尚未这样做不要认真对待关于这个问题的反馈

在“yum update”上将用户升级到新的 PostgreSQL 版本是错误的做法,原因正如您所遇到的:pg_upgrade有限制,并且除非您有旧服务器版本的二进制文件,否则您无法进行转储和重新加载。

之前写过一篇关于此的文章

有关此主题的 Amazon Linux 常见问题解答自从我写下这篇文章以来,情况已经有所改善,但仍然不承认他们糟糕的包装政策造成了问题。

认真考虑使用更加小心打包 PostgreSQL 的发行版。PGD​​G团队目前没有为 Amazon Linux 制作软件包,否则我建议使用它们。

相关内容