[postgresql] PostgreSQL 9.2 pg_dump 버전 불일치

pg_dump 도구를 사용하여 Postgresql 데이터베이스를 덤프하려고합니다 .

$ pg_dump books > books.out

이 오류가 어떻게 발생합니까?

pg_dump: server version: 9.2.1; pg_dump version: 9.1.6
pg_dump: aborting because of server version mismatch

--ignore-version옵션은 더 이상 사용되지 않으며 실제로 작동하더라도 내 문제에 대한 해결책은 아닙니다.

이 문제를 해결하기 위해 pg_dump 를 어떻게 업그레이드 할 수 있습니까?



답변

pg_dump클라이언트 컴퓨터 에 PostgreSQL 9.2.1을 설치 하거나 $PGHOMEPostgreSQL 서버 컴퓨터에서 클라이언트 컴퓨터로 복사 할 수 있습니다. initdb클라이언트 시스템에는 새 클러스터 가 필요하지 않습니다 .

9.2.1 소프트웨어 설치를 완료 한 후 .bash_profile파일 에서 일부 환경 변수를 편집해야 합니다.


답변

우분투에서 Heroku를 사용하는 동안이 문제가 발생했으며 다음과 같이 수정했습니다.

  1. Linux downloads (Ubuntu)
    “에 설명 된대로 PostgreSQL apt 저장소를 추가하십시오 . (다른 운영 체제와 비슷한 페이지가 있습니다.)

  2. 다음을 사용하여 최신 버전 (9.3 for me)으로 업그레이드하십시오.

    sudo apt-get install postgresql
  3. 다음을 사용하여 기호 링크를 다시 작성하십시오 /usr/bin.

    sudo ln -s /usr/lib/postgresql/9.3/bin/pg_dump /usr/bin/pg_dump --force

    /usr/lib/postgresql/...위 경로 의 버전 번호는 server version수신 한 오류 의 번호 와 일치해야합니다 . 오류가이라고 표시되면 pg_dump: server version: 9.9에 링크하십시오 /usr/lib/postgresql/9.9/....


답변

  1. 설치된 pg_dump 버전을 확인하십시오 :

    find / -name pg_dump -type f 2>/dev/null
  2. 내 결과는 다음과 같습니다

    /usr/pgsql-9.3/bin/pg_dump
    /usr/bin/pg_dump
    
  3. 두 가지 버전이 설치되어 있습니다. 최신 버전으로 pg_dump를 업데이트하려면 :

    sudo ln -s /usr/pgsql-9.3/bin/pg_dump /usr/bin/pg_dump --force

최신 버전으로의 심볼릭 링크가 생성됩니다.


답변

Mac에는 /usr/bin/pg_dump기본적으로 사용되는 내장 명령이 있습니다.

postgresql을 설치하면 다른 바이너리를 얻을 수 있습니다 /Library/PostgreSQL/<version>/bin/pg_dump


답변

pg_dump명령에서 전체 경로를 찾아서 사용할 수 있습니다.

locate pg_dump

/usr/bin/pg_dump
/usr/bin/pg_dumpall
/usr/lib/postgresql/9.3/bin/pg_dump
/usr/lib/postgresql/9.3/bin/pg_dumpall
/usr/lib/postgresql/9.6/bin/pg_dump
/usr/lib/postgresql/9.6/bin/pg_dumpall

이제 명령에서 원하는 버전의 경로를 사용하십시오.

/usr/lib/postgresql/9.6/bin/pg_dump books > books.out


답변

Ubuntu를 사용중인 경우 이전 버전이 postgresql-client설치 되었을 수 있습니다 . 오류 메시지의 버전을 기반으로 솔루션은 다음과 같습니다.

sudo apt-get remove postgresql-client-9.1
sudo apt-get install postgresql-client-9.2


답변

PostgreSQL의 새 버전을 업그레이드하거나 다시 설치할 때마다 최신 버전 pg_dump 이 설치됩니다.

PostgreSQL/bin 시스템에 어딘가에 설치 한 PostgreSQL의 최신 버전 (9.2.1이 최신 버전) 아래에 디렉토리
가 있어야합니다 pg_dump .