Postgresql
升級到 postgres 10 後 pg_ctl 仍然指向 9.5.4
我已在 Ubuntu 14 上將 postgres 從 9.5.4 更新到最新的 10.4。
但是在安裝 postgres 10 之後,我看到了
support@platform1:/usr/bin$ ls -lah pg_ctl lrwxrwxrwx 1 root root 34 Jun 13 08:59 pg_ctl -> /usr/lib/postgresql/9.5/bin/pg_ctl
該問題似乎與此處討論的問題相似。我不能使用那裡提到的答案,因為正在使用數據庫。所以我必須保持 9.5 和 10 一起安裝,直到執行數據遷移,因為
pg_upgrade
需要 9.5 和 10 二進製文件來執行遷移。要安裝 postgres 10,我按照以下步驟操作:-
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get install postgresql-10
然後使用 postgres 9.5 執行數據遷移
pg_upgrade
,然後刪除
pg_ctl
不起作用,因為它指向現在已刪除的舊 9.5 安裝。
posgres -V
也因以下錯誤而失敗support@platform1:/usr/bin$ postgres -V The program 'postgres' is currently not installed. You can install it by typing: sudo apt-get install postgres-xc
有人可以讓我知道出了什麼問題,我該如何解決?
是的,一旦你升級了 Postgresql,你的環境 PATH 仍然指向舊路徑。做以下事情。
例如:您的 PG10 的 pg_ctl 可能位於
/usr/share/pg10/bin/pg_ctl
.所以你需要導出這個路徑。
export PATH=/usr/share/pg10/bin/$PATH
並且,刪除舊版本,然後註銷並登錄。
如果從 Postgres APT 儲存庫安裝,您應該使用
pg_ctlcluster
它,因為它知道同時安裝了多個版本。此外,
postgres
未安裝在預設 PATH 中的位置。這是設計使然;最終使用者不需要執行它,因為它由pg_ctlcluster
.