根据日志文件,我收到以下错误。
“/usr/lib/postgresql/12/bin/pg_ctl”找到了程序“postgres”,但与 pg_ctl 的版本不同。检查您的安装。
我运行的是 Ubuntu 20.04。
我执行了以下命令来确定正在运行的版本:
# /usr/lib/postgresql/12/bin/postgres --version
postgres (PostgreSQL) 12.16 (Ubuntu 12.16-0ubuntu0.20.04.1)
# /usr/lib/postgresql/12/bin/pg_ctl --version
pg_ctl (PostgreSQL) 12.15 (Ubuntu 12.15-0ubuntu0.20.04.1)
由于当前情况使我的数据库服务器无用并且我有一些无法访问的数据库,我是否需要更新或执行某些任务?
另外,现在当我运行命令时,我收到此错误:
postgres@tvsr-strapi:~$ psql
psql: error: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
postgres@tvsr-strapi:~$
我已经尝试重新创建符号链接,但仍然不起作用。
由于我无法重新启动 PostgreSQL 服务器,我决定将位于
/etc/postgresql/12/main
另一台服务器的数据文件复制并检查它是否有效。在尝试在新服务器上测试这一点时,我安装了相同版本的 PostgreSQL 12,然后尝试检查pg_ctl和postgres的版本信息。
我很惊讶地发现这些版本与我当前的服务器中的版本相同。因此,我决定简单地将二进制文件从新服务器复制到旧服务器,位置为
/var/lib/postgresql/12
。完成此操作后,我的 PostgreSQL 就启动了,没有任何问题或抱怨。我知道这可能不是最好的方法,但它有效并允许我转储数据。
尽管问题仍然存在,旧服务器的版本如何更改?