Postgresql 9.2pg_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를 확인합니다.
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
새 버전에 대한 심볼 링크가 생성됩니다.
Ubuntu에서 Heroku를 사용하는 동안 이 문제가 발생했습니다. 수정 방법은 다음과 같습니다.
Postgre 추가"Linux downloads (Ubuntu)"에 설명된 SQLapt 저장소(다른 운영 체제의 경우 유사한 페이지가 있음)
다음을 사용하여 최신 버전(나의 경우 9.3)으로 업그레이드:
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/...
.
에는 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
PostgrePostgre를 설치할 수 . 9.2.1 9pg_dump
만 하면 .$PGHOME
▁the▁.SQL 서버 시스템에서 클라이언트 시스템으로.다음 작업을 수행할 필요가 없습니다.initdb
클라이언트 시스템의 새 클러스터.
한 후에는 9.2.1의 변수를 ..bash_profile
java.
Ubuntu에의 Ubuntu가 수 .postgresql-client
으로 해결 과 같습니다.오류 메시지의 버전에 따라 해결 방법은 다음과 같습니다.
sudo apt-get remove postgresql-client-9.1
sudo apt-get install postgresql-client-9.2
도커가 설치된 경우 다음과 같은 작업을 수행할 수 있습니다.
$ docker run postgres:9.2 pg_dump books > books.out
9 있는 하여 Postgres 9.2를 실행합니다.pg_dump
용기 내부에 입력하고 출력을 기록합니다.
Ubuntu에서 최신 Apt 저장소를 추가하고 다음을 실행하기만 하면 됩니다.
sudo apt-get install postgresql-client-11
PostgrePostgre의새마다 최신 PostgrePostgre SQL이 됩니다. pg_dump
가 설치되어 있습니다.
분명히 있을 것입니다. PostgreSQL/bin
Postgre 스템의최 Postgre을최있는 SQL의 ( 버전)에서를 한 후 SQL(9.2.1 최신 버전)을해 보십시오. pg_dump
그 안에서.
Postgres.app을 실행하는 경우:
합니다.
.bash_profile
:export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH
터미널을 다시 시작합니다.
홈브루가 있는 Mac용.Heroku에서 db를 가져올 때 문제가 발생했습니다.실행 중인 상태에서 수정했습니다.
brew upgrade postgresql
Mac 사용자의 경우 .profile 파일의 맨 위에 배치합니다.
export PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
그 다음에 달려라
. ~/.profile
다른 사람이 다루지 않은 것 같은 대체 답변입니다.
(개의 경우에는 (으)로 클러스터로 볼 수.pg_lsclusters
.
표시된 목록에서 버전 및 클러스터를 볼 수 있어야 합니다.
여기서 다음 작업을 수행할 수 있습니다.
pg_dump --cluster=9.6/main books > books.out
반환되는 것에서 .pg_lsclusters
로 합니다.실행하려는 특정 클러스터를 대상으로 합니다.
나에게 있어 이 문제는 업데이트 중이었습니다.psql
apt-get
최신 버전을 확인하지 않았습니다.update
다음은 효과가 있었습니다.
우분투
Postgre용 GPG 키 가져오기부터 시작합니다.SQL 패키지.
sudo apt-get install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
이제 시스템에 리포지토리를 추가합니다.
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
Postgre 설치Ubuntu의 SQL
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
https://www.postgresql.org/download/linux/ubuntu/
설명한 대로, 이것은 당신의 postgresql이 이전 버전이기 때문입니다 -> 홈브루를 통해 Mac용으로 업데이트:
brew tap petere/postgresql
,
brew install <formula>
(예:)brew install petere/postgresql/postgresql-9.6
)
이전 postgre 제거:
brew unlink postgresql
brew link -f postgresql-9.6
오류가 발생할 경우 각 단계의 양조 지침을 읽고 따르는 것을 잊지 마십시오.
자세한 내용은 https://github.com/petere/homebrew-postgresql 을 참조하십시오.
이것은 위와 다른 사이트의 솔루션 모음인 저에게 효과가 있었습니다.이전에 postgressql-client-11과 같은 버전을 지정한 경우 먼저 해당 버전을 제거해야 합니다.
sudo apt-get remove -y postgresql-client
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 install -y postgresql-client-12
대답은 바보 같지만 위의 오류가 발생하고 이전 버전에 대해 pg_dump를 실행하려면 postgres의 bin 디렉토리로 이동하고 입력합니다.
./pg_sql servername > out.sql ./ 루트를 무시하고 현재 디렉터리에서 pg_dll을 찾습니다.
저도 같은 오류가 있었고 제 경우에는 이렇게 해결했습니다.즉, postgresql 버전이 9.2.1이지만 postgresql 서비스 9.1.6을 시작했습니다.
실행하는 경우psql postgres
다음과 같이 표시됩니다.
psql (9.2.1, server 9.1.6)
이 문제를 해결하기 위해 제가 한 일은 다음과 같습니다.
brew services stop postgresql@9.1.6
brew services restart postgresql@9.2.1
지금실을 실행합니다.psql postgres
그리고 당신은 다음과 같이 해야 합니다.psql (9.2.1)
실행할 수도 있습니다.brew services list
게시물의 상태를 확인합니다.
저도 같은 문제에 직면해 있었습니다.pg_dump 업그레이드 대신 도커를 사용했습니다.
다음 명령을 실행하여 Postgres 14.2 또는 원하는 다른 버전의 도커 컨테이너를 만듭니다.
sudo docker run --name mac_postgres -p 5444:5432 -e POSTGRES_PASSWORD=password -d postgres:14.2
그런 다음 다음 명령을 사용하여 덤프를 실행합니다.참고: 실제 데이터베이스 자격 증명에 따라 호스트, 포트, 사용자 이름 및 암호를 변경해야 합니다.
sudo docker exec -it mac_postgres pg_dump --host=xxxxx0.b.db.ondigitalocean.com --port=250xx --username=doadmin --dbname=test --password > out.sql
암호를 입력한 후.덤프가 out.sql 파일로 준비됩니다.그런 다음 도커 컨테이너를 삭제할 수 있습니다.
sudo docker stop mac_postgres
sudo docker rm mac_postgres
Heroku바이너리와 는 Heroku의 Postgres.app에 ./Applications/Postgres.app/Contents/MacOS/bin/
그래서 그 경우에는.
ln -s /Applications/Postgres.app/Contents/MacOS/bin/pg_dump /usr/local/bin/pg_dump
또는
ln -s /Applications/Postgres.app/Contents/MacOS/bin/* /usr/local/bin/.
그냥 다 잡기 위해서는
설치 후 postgres 버전이 일치합니다(9.2) 심볼릭 링크 또는 새 바로 가기 만들기
'/usr/bin'에
syntag is = sudo ln -s [path for use] [new shortcut name]
예
sudo ln -s /usr/lib/postgresql/9.2/bin/pg_dump new_pg_dump
호출 방법: new_pg_dump -h 192.168.9.88 -U postgres 데이터베이스
시도:
export PATH=/usr/local/bin:$PATH
데이터베이스가 다른 시스템에 설치된 경우에는 올바른 버전의 pg_dump가 설치되어 있을 수 있습니다. SSH: 즉, SSH를 사용하여 할 수 .ssh username@dbserver pg_dump books > books.out
또한 비밀번호 없는 실행에 공용 키 인증확인을 사용할 수 있습니다.이를 위한 단계:
- ssh-keygen 명령을 사용하여 키 쌍을 생성합니다(아직 생성되지 않은 경우).
- 공용 키를 데이터베이스 서버(일반적으로 ~/.ssh/authorized_keys)에 복사합니다.
- 연결이 ssh 명령으로 작동하는지 테스트합니다.
저는 두 개의 후속 버전이 설치되어 있는 것과 같은 문제가 있었습니다.
적절한 pg_dump를 사용하기만 하면 다음과 같은 경우에는 아무것도 변경할 필요가 없습니다.
$> /usr/lib/postgresql/9.2/bin/pg_dump books > books.out
Mac의 사, 용을 합니다.find / -name pg_dump -type f 2>/dev/null
저는 다음과 같은 결과를 얻었습니다.
Applications/Postgres.app/Contents/Versions/9.5/bin/pg_dump
/usr/local/Cellar/postgresql/9.4.5_2/bin/pg_dump
사용하지 않으려는 경우sudo ln -s new_pg_dump old_pg_dump --force
그냥 사용:
Applications/Postgres.app/Contents/Versions/9.5/bin/pg_dump
pg_dump
의 터미널에서.
예:
Applications/Postgres.app/Contents/Versions/9.5/bin/pg_dump books > books.out
나에게는 그게 효과가 있어요!
가 업그레이드되었습니다.postgresql-client-xx
내 사건을 해결하기에 충분했습니다.
참조 웹 페이지 : https://www.postgresql.org/download/linux/ubuntu/
sudo apt-get update && sudo apt-get -y upgrade postgresql-client
한 가지 흥미로운 점은 업그레이드 후 이전 버전이 설치된 상태로 유지된다는 점입니다.
mlazo@mlazo-pc:~$ dpkg -l |grep -i postgresql-client
ii postgresql-client-11 11.8-1.pgdg18.04+1 amd64 front-end programs for PostgreSQL 11
ii postgresql-client-12 12.4-1.pgdg18.04+1 amd64 front-end programs for PostgreSQL 12
나의 경험이 누군가에게 도움이 되길 바랍니다.
인사말,
저는 다음 사항을 조정해야 한다는 것과 같은 메시지를 받았습니다.
export LD_LIBRARY_PATH=/usr/pgsql-12/lib:....
export LD_RUN_PATH=/usr/pgsql-12/lib:.....
첫 번째 단계: postgres에 OS용으로 원하는 버전의 바이너리가 미리 구축된 저장소가 있는지 확인합니다. https://www.postgresql.org/download/
이 방법이 작동하지 않는 경우(예: 디스트리뷰터가 있지만 더 이상 지원되지 않아 올바른 바이너리가 제공되지 않는 경우) 또는 원격 레포를 추가할 걱정 없이 바로 사용하거나 소스만 사용하려는 경우 등).
제가 한 일은 원하는 버전의 게시물의 원시 소스를 다운로드한 것입니다.
을 풀고,, 그것을 , CD를, 그리고 를넣고만다../configure && make
그러면:
postgresql-12.3 $ find . -name pg_dump
./src/bin/pg_dump/pg_dump
$ ./src/bin/pg_dump/pg_dump
unable to load libpg.so.5 # if it says this...
$ find . -name libpg.so.5
$ export LD_LIBRARY_PATH=/your/path/to/the/shared/dir/of/above/file
$ ./src/bin/pg_dump/pg_dump # works now
이제 상자에 포함된 모든 버전에 액세스할 수 있습니다.어떤 것이든 좋습니다.
전체 단계 자습서
로컬 버전은 원격 서버의 AWS에서 사용하는 버전과 일치해야 합니다.안타깝게도 apt-get 설치는 정식 릴리스보다 뒤처질 것입니다.
따라서 다음과 같은 방법으로 진행해야 합니다.
sudo apt-get remove postgresql
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 -
그런 다음 오류 메시지가 다음과 같아야 합니다.
pg_dump: server version: 12.3; pg_dump version: 10.16 (Ubuntu 10.16-0ubuntu0.18.04.1)
따라서 새로 설치하는 동안 버전 번호(부차 없이)를 지정하여 일치하는 버전을 설치하려면 버전 12(13이 아닌)를 사용해야 합니다.
sudo apt-get -y install postgresql-12
이제 작동합니다.
pg_dump -h {{endpoint}} -U {{username}} -f dump.sql {{tablename}}
NB: Connectivity & Security에서 엔드포인트를 얻고 https://us-east-2.console.aws.amazon.com/rds/home?region=us-east-2 으로 이동하여 DB 인스턴스를 클릭합니다.
"공식" postgresql repo가 있는 Ubuntu 20.04의 경우 12페이지에서 13페이지로 이동해야 했습니다.
sudo apt purge postgresql-12
이것은 제가 정확히 파악하기 매우 어려웠습니다.저는 다음과 같은 다양한 패키지를 가지고 놀았습니다.
- postgresql-client
- postgresql-client-common
- postgresql-##
- postgresql-client-##
- postgresql-server-dev-##
- pgadmin
언급URL : https://stackoverflow.com/questions/12836312/postgresql-9-2-pg-dump-version-mismatch
'programing' 카테고리의 다른 글
Git 저장소를 특정 커밋으로 롤백(재설정)하려면 어떻게 해야 합니까? (0) | 2023.05.03 |
---|---|
메뉴 항목 바로 가기 정의 (0) | 2023.05.03 |
python pip - local dir에서 설치 (0) | 2023.05.03 |
편집 가능한 콤보 상자에서 TextChanged 이벤트를 가져오는 방법 (0) | 2023.05.03 |
최상위 수준 요청에 대해 대기(거짓) 구성 (0) | 2023.05.03 |