在 Ubuntu 14.04 上,我這樣做是為了取得最新的 postgres:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
然後我安裝了9.4版本:
sudo apt-get install postgresql-9.4
不過我現在似乎有三個版本:
sudo service postgresql stop
* Stopping PostgreSQL 9.3 database server [ OK ]
* Stopping PostgreSQL 9.4 database server [ OK ]
* Stopping PostgreSQL 9.5 database server [ OK ]
如何只保留9.4並卸載其他版本?謝謝
更新:
正如評論中所建議的,我已經卸載了 9.3 和 9.5。
但是當我這樣做時:
sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down
到目前為止一切順利,但是當我切換到 postgres 時:
sudo su postgres
並執行 psql,我收到錯誤:
psql: 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"?
答案1
不同版本的 PostgreSQL 位於套件 postgresql-9.* 中。
所以你應該刪除你的兩個包:
sudo apt-get purge postgresql-9.3 postgresql-9.5
然後你應該刪除不必要的設定資料夾:
rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
如果您有的話,請從 /var/lib/ 資料夾:
/var/lib/postgresql/*
我希望它能幫助你。
答案2
很晚才添加答案,但可能會對這裡的人有所幫助。
簡短回答:錯誤表示 postgres 配置在錯誤的(非預設)連接埠上。使用正確的連接埠
長答案:
當您安裝多個版本的 Postgresql 時,所有版本都開始在不同的連接埠上執行 postgres 叢集。在您的輸出中,正在執行以下 postgres 版本:9.3 --> 5432
, 9.4 -->5434
, 9.5 --> 5433
。
sudo service postgresql status
9.3/main (port 5432): down
9.4/main (port 5434): online
9.5/main (port 5433): down
sudo apt-get purge postgresql-9.x
您可以使用where is your version來卸載其他版本9.x
,但是在您的情況下,系統上存在的版本(9.4)被配置為在連接埠 5434 上運行Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
。5432
沒有的連接埠不再附加任何 postgres。
這裡有兩個解決方案:
psql -p 5434
在 psql 指令中使用ie 連接埠選項(-p/--port)。- 或將您的 postgres 伺服器
port
設定值配置為/etc/postgresql/9.5/main/postgresql.conf
在 5432 上提供服務。