卸载 Postgresql 9.4 后 postgresql 9.4 服务仍然存在

卸载 Postgresql 9.4 后 postgresql 9.4 服务仍然存在

我已经做好了

sudo apt-get remove postgresql-9.4

进而

sudo apt-get install postgesql-9.5 

但我仍然看到服务“postgresql-9.4”在 systemctl 中启动时启动。然后我尝试使用 .service 文件,我一定是搞砸了什么,因为现在我看到此服务在 journalctl 中状态为失败。此外,现在我的 Rails 应用程序默认使用 Postgres 9.5,想要监听端口 5432,但此端口已被旧安装的 Postgres 9.4 占用,因此它们无法启动。我可以在应用程序配置中修复它并为他们提供端口 5433,但对每个应用程序都这样做可能很麻烦,所以我应该在系统级别修复它。我该如何修复它?

我的 journalctl 中有这个:

Home systemd[1]: Failed to start PostgreSQL Cluster 9.4-main.
Home /usr/lib/snapd/snapd[1210]: snapmgr.go:411: Cannot prepare auto-refresh change: Post https://search.apps.ubuntu.com/api/v1/snaps/metadata: dial tcp: lookup search.apps.ubuntu.com o
Home systemd[1]: [email protected]: Unit entered failed state.
Home /usr/lib/snapd/snapd[1210]: stateengine.go:98: state ensure error: Post https://search.apps.ubuntu.com/api/v1/snaps/metadata: dial tcp: lookup search.apps.ubuntu.com on [::1]:53: r
Home systemd[1]: [email protected]: Failed with result 'exit-code'.

答案1

假设您已经备份了任何 9.4 数据库,则使用“清除”而不是“删除”将删除带有“port=5432”行的 /etc/postgresql/9.4/main/postgresql.conf 文件。由于在安装 9.5 时它仍然存在,因此安装使用了下一个端口 5433。通常,这样做是为了允许在删除旧版本之前安装和签出更高版本的 postgresql。

您可以将 /etc/postgresql/9.5/main/postgresql.conf 文件端口编辑为 5432,然后重做 apt-get purge postgresql-9.4 来清理旧的配置文件。


您可以使用locate查找任何剩余的9.4文件

locate postgresql/9.4 

并手动删除它们以防止 systemd 尝试启动不再存在的服务。

相关内容