Saya menjalankan PostgreSQL di Debian Unstable / Sid. Aku punya versi saat ini (9,1) dari postgresql
, postgresql-client
, postgresql-client-common
(143) diinstal.
Masalah yang saya alami adalah mencoba untuk menjalankan pg_dump
. Saya mendapatkan kesalahan ini:
pg_dump: server version: 9.1.9; pg_dump version: 9.0.6
pg_dump: aborting because of server version mismatch
Sepertinya saya tidak tahu cara mendapatkan versi yang lebih baru pg_dump
. Tampaknya berasal dari postgresql-client-common
paket, dan saya sudah mencoba menjalankannya apt-get --reinstall
, tetapi itu tidak membuat saya mendapatkan versi pg_dump yang lebih baru.
Bagaimana saya mengatasi ini? Atau di mana saya dapat menemukan paket dengan versi yang lebih baru pg_dump
?
debian
postgresql
supercheetah
sumber
sumber
which pg_dump
ditunjukkan kepada Anda? Hanya untuk mengkonfirmasi bahwa itu sebenarnya versi paket dan bukan yang lain./usr/bin/pg_dump
, dandpkg -S /usr/bin/pg_dump
memberi sayapostgresql-client-common: /usr/bin/pg_dump
.Jawaban:
Beberapa pilihan.
Unduh .deb 9.1 dari situs Postgres
Lihatlah halaman ini berjudul: Unduhan Linux (Debian) - PostgreSQL . Anda dapat mengunduh deb .deb yang diperbarui dari situs secara langsung, atau menunjuk kembali ke repositori mereka, dan melakukan perintah seperti ini:
Backport Debian
Anda mungkin dapat menemukan versi spesifik di sini, http://backports.debian.org/ .
Gunakan versi generik
Anda dapat mengunduh binary build PostgreSQL dan menginstalnya di direktori home Anda atau
/opt
misalnya.Unduh salah satu pre-build untuk penggunaan perusahaan
Saya tidak punya banyak pengalaman dengan ini, tetapi Anda mungkin dapat mengunduh salah satu dari ini mirip dengan versi generik dan menggunakan klien dari instalasi itu, seperti, membuang database Anda.
Paket distribusi lintas
Anda dapat mengunduh paket-paket yang telah dibuat sehingga agnostik distribusi. Saya baru saja mengunduh versi 9.1.9 dan itu termasuk
pg_dump
alat.Perangkat lunak ini disediakan sebagai .rpm atau .deb dan diinstal ke
/opt/postgres/9.1
. Khususnyapg_dump
alat yang disediakan di sini:/opt/postgres/9.1/bin/pg_dump
.sumber
pg_dump
yang lama dan tidak kompatibel. Apakah ada tempat yang bisa saya temukan secara spesifik?pg_dump
perintah di sana. Mereka tidak harus diinstal, hanya tidak diarsipkan ke direktori. Anda mungkin harus mengatur variabel lingkungan untuk menunjuk ke direktori pustaka tetapi harus cukup mudah.Opsi lain, yang mungkin cocok untuk Anda, adalah menghapus instalasi versi paralel lama:
di debian / ubuntu:
Itu mempertahankan versi yang lebih baru (mis. 9.1) hanya menghapus 8,4 klien dan server libs yang lebih lama.
sumber
Dalam kasus saya, saya memiliki dua set database, beberapa berjalan pada versi lama Postgresql 8.4 dan lainnya berjalan pada versi 9.1. Apa yang saya lakukan adalah mencari
pg_dump
di mesin Linux menggunakanlocate
perintah di bawah iniKarena defaultnya
/usr/bin/pg_dump
adalah untuk Postgresql versi 8.4, saya baru saja menentukan/usr/lib/postgresql/9.1/bin/pg_dump
dari baris perintah ketika membuang dari database 9.1 yang berjalan pada port yang berbeda dan itu berhasil.sumber
Selain jawaban di atas, Anda juga bisa memberi tahu
pg_dump
dan perintah lain, versi mana yang akan digunakan melaluicluster
opsi. Contohnya,akan menargetkan versi 9.1.
Perhatikan bahwa ini memanfaatkan
pg_wrapper
, yang datang denganpostgresql-common
dan berfungsi di Ubuntu (Debian). Perhatikan juga bahwa cluster (main
dalam contoh) mungkin berbeda dalam pengaturan Anda.Informasi lebih lanjut tentang
pg_wrapper
dapat ditemukan dalam jawaban DBA ini .sumber
Saya mengalami masalah yang sama hari ini dan jawaban Erick tampaknya paling akurat. Masalahnya kemungkinan bahwa Anda memiliki versi berbeda dari postgresql-client dan pg_dump hanya menggunakan klien tertua.
Anda dapat menyelesaikan ini dengan menggunakan path lengkap seperti yang dia jelaskan, tetapi saya menemukan solusi yang lebih mudah untuk menghapus paket postgresql-client-common (yang menghapus semua klien), kemudian instal ulang postgresql-client-9.3. Ini membuat Anda hanya memiliki pg_dump versi terbaru yang mungkin Anda inginkan.
sumber