특정 버전의 Postgres를 제거하는 방법은 무엇입니까?

특정 버전의 Postgres를 제거하는 방법은 무엇입니까?

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.* 패키지에 있습니다.

  1. 따라서 두 패키지를 제거해야 합니다.

    sudo apt-get purge postgresql-9.3 postgresql-9.5
    
  2. 그런 다음 불필요한 구성 폴더를 제거해야 합니다.

    rm -r /etc/postgresql/9.3/ /etc/postgresql/9.5
    
  3. 다음이 있는 경우 /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버전이 어디에 있는지 를 사용하여 다른 버전을 제거할 수 있지만 9.x시스템에 있는 버전(9.4)은 포트 5434에서 실행되도록 구성되어 있습니다. 따라서 오류는 Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?psql이 기본적으로 포트 5432가 없는 포트에 연결을 시도한다는 것을 완벽하게 나타냅니다. 더 이상 포스트그레스가 첨부되어 있습니다.

여기에는 두 가지 솔루션이 있습니다.:

  • psql -p 5434psql 명령에서 포트 옵션(-p/--port)을 사용하십시오 .
  • 또는 5432에서 제공되도록 postgres 서버 port구성 값을 구성하십시오 /etc/postgresql/9.5/main/postgresql.conf. 변경 후 postgres를 다시 시작하는 것을 잊지 마십시오.

관련 정보