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을 설치 하거나 $PGHOME
PostgreSQL 서버 컴퓨터에서 클라이언트 컴퓨터로 복사 할 수 있습니다. initdb
클라이언트 시스템에는 새 클러스터 가 필요하지 않습니다 .
9.2.1 소프트웨어 설치를 완료 한 후 .bash_profile
파일 에서 일부 환경 변수를 편집해야 합니다.
답변
우분투에서 Heroku를 사용하는 동안이 문제가 발생했으며 다음과 같이 수정했습니다.
-
” Linux downloads (Ubuntu)
“에 설명 된대로 PostgreSQL apt 저장소를 추가하십시오 . (다른 운영 체제와 비슷한 페이지가 있습니다.) -
다음을 사용하여 최신 버전 (9.3 for me)으로 업그레이드하십시오.
sudo apt-get install postgresql
-
다음을 사용하여 기호 링크를 다시 작성하십시오
/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/...
.
답변
-
설치된 pg_dump 버전을 확인하십시오 :
find / -name pg_dump -type f 2>/dev/null
-
내 결과는 다음과 같습니다
/usr/pgsql-9.3/bin/pg_dump /usr/bin/pg_dump
-
두 가지 버전이 설치되어 있습니다. 최신 버전으로 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
.