Hangi PostgreSQL sürümünü kullanıyorum?


1026

Kurumsal bir ortamdayım (Debian Linux çalıştıran) ve kendim kurmadım. Veritabanlarına Navicat veya phpPgAdmin kullanarak erişiyorum (eğer yardımcı oluyorsa). Ayrıca veritabanını çalıştıran sunucuya kabuk erişimi yok.

Yanıtlar:


1645

Bu sorguyu PostgreSQL'den çalıştırın:

SELECT version();

4
Ubuntu'daki terminalde durumumda sonuç yok
Timo

22
@Timo, bu PostgreSQL üzerinden çalıştırılacak bir sorgu. Bu, pgAdmin veya bir sorguyu çalıştırmak için başka herhangi bir mekanizma aracılığıyla yapılabilir. Bir Ubuntu kabuğundan çalıştırmaya mı çalışıyorsunuz? (Bu işe yaramaz)
Son derece Düzensiz

41
Bu aynı zamanda komut satırından da çalıştırılabilirpsql -c 'SELECT version();'
Aaron Lelevier

3
Postgres psql postgres -c 'SELECT version();'
db'yi

22
@Frank H. Kullanarak: sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL"rol" kullanıcı adı "yok" geçmiş olsun gerekir.
Marcus Junius Brutus

550

Aradığın şey olduğuna inanıyorum,

Sunucu sürümü:

pg_config --version

İstemci sürümü:

psql --version

1
Teşekkürler! Bu, kabuk erişimi olduğunda kullanılabilir. Ne yazık ki benim durumumda bu erişimim yok; Soruyu güncelledim.
Son derece Düzensiz

3
Bazen istemci sürümü zaten bilmek istediğiniz şeydir.
Aralık'ta Trejkaz

12
Frank'in belirttiği gibi, bu aldatıcı olabilir. psql, çalışan postmaster / postgres veritabanı işlemine bağlanır ve veritabanı motoru psql komutuyla aynı sürümde olmayabilir.
Ben Roberts

2
pg_config --versionyanıltıcı olabilir, örneğin bir Ubuntu sunucusunu yükseltir ve çalıştırmazsanız pg_upgradecluster, pg_config hala kullanmakta olduğunuz sürüm yerine yeni sürümü gösterir.
Marius Gedminas

sadece bu benim için çalışıyor: pg_config --version Komut: psql --versionçalışmıyor, bunun için şikayet ediyor: dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Referenced from: /usr/local/bin/psql Reason: image not found
rld

217

CLI kullanma:

Sunucu sürümü:

$ postgres -V  # Or --version.  Use "locate bin/postgres" if not found.
postgres (PostgreSQL) 9.6.1
$ postgres -V | awk '{print $NF}'  # Last column is version.
9.6.1
$ postgres -V | egrep -o '[0-9]{1,}\.[0-9]{1,}'  # Major.Minor version
9.6

Birden fazla PostgreSQL yüklemesi yapıyorsanız veya " postgres: command not found" hatası alıyorsanız :

$ locate bin/postgres | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/pgsql-9.3/bin/postgres -V 
postgres (PostgreSQL) 9.3.5
/usr/pgsql-9.6/bin/postgres -V 
postgres (PostgreSQL) 9.6.1

Eğer locateyardımcı olmazsa, deneyin find:

$ sudo find / -wholename '*/bin/postgres' 2>&- | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/pgsql-9.6/bin/postgres -V 
postgres (PostgreSQL) 9.6.1

Kullanılabilir olsa postmasterda postgres, postgreskullanım tercih edilir çünkü postmasterkullanımdan kaldırılmış bir takma adıdır postgres.

İstemci sürümü:

Alakalı olarak, giriş yapınpostgres .

$ psql -V  # Or --version
psql (PostgreSQL) 9.6.1

Birden fazla PostgreSQL kurulumuna sahipseniz:

$ locate bin/psql | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/bin/psql -V 
psql (PostgreSQL) 9.3.5
/usr/pgsql-9.2/bin/psql -V 
psql (PostgreSQL) 9.2.9
/usr/pgsql-9.3/bin/psql -V 
psql (PostgreSQL) 9.3.5

SQL kullanımı:

Sunucu sürümü:

=> SELECT version();
                                                   version                                                    
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.9 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit

=> SHOW server_version;
 server_version 
----------------
 9.2.9

=> SHOW server_version_num;
 server_version_num 
--------------------
 90209

Daha meraklıysanız deneyin => SHOW all;.

İstemci sürümü:

Değer için, yürütülebilir komut dosyasının yoldaki psqlistemci sürümünü göstermek için içinde bir kabuk komutu psqlyürütülebilir. Koşunun psqlpotansiyel olarak yoldakinden farklı olabileceğini unutmayın .

=> \! psql -V
psql (PostgreSQL) 9.2.9

12
Teşekkür ederim!, SHOW server_version;Uzun dizede ayrıştırmak zorunda kalmamak için komut dosyalarında çok kullanışlıdır SELECT version();.
vaab

Çok teşekkürler. İnsanlar SQL komutlarını vermek için veritabanına bağlanmak için en az bir rol bilmeniz gerektiğini fark etmezler. Ancak postgres -V ile sürümünü bilmek için veritabanına bağlanmak zorunda değilsiniz.
ychaouche

CLI Bir satır süper erişimini varsayarak: psql postgres -c "SHOW server_version" -t -A. -tbaşlıkları kaldırır, -Aboşlukları hizalamayı kaldırır.
Pocketsand

SHOW server_version_numEşitsizlikler için kullanışlı olan özellikle teşekkür ederiz .
eswald

63

CLI kullanıyorsanız ve postgres kullanıcıysanız , bunu yapabilirsiniz:

psql -c "SELECT version();"


Olası çıktı :

                                                         version                                                         
-------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.1 (Debian 11.1-3.pgdg80+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10+deb8u2) 4.9.2, 64-bit
(1 row)

37

Kabul edilen cevap harika, ancak PostgreSQL sürümü ile programlı olarak etkileşime girmeniz gerekiyorsa belki daha iyi:

SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too

Sunucu sürümünü tamsayı olarak döndürür. Sunucu sürümü PostgreSQL kaynağında bu şekilde test edilir , örneğin:

/*
 * This is a C code from pg_dump source.
 * It will do something if PostgreSQL remote version (server) is lower than 9.1.0
 */
if (fout->remoteVersion < 90100)
    /*
     * Do something...
     */  

Burada ve burada daha fazla bilgi .


36

Komutu çalıştır

psql -V

Nerede

V başkentte olmalı.


8
Bu, Postgres sunucusunun sürümü değil , psql(istemci) sürümüdür .
a_horse_with_no_name

To yorumcular : cevap yanlış ama bir cevap ise (comment ima gibi), silme önermiyoruz: downvote! Örneğin, " Bunu yanlış yapıyorsunuz: Düşük Kaliteli Mesajlar kuyruğunda akıl sağlığı için bir savunma " ve " Bir cevap yanlış soruya cevap verdiğinde, bu bir Yanıt Değil mi? " Konusuna bakın . Bu bir cevap. Buna katılmayabilirsiniz, ancak bu soruyu cevaplamaya yönelik bir girişimdir.
Wai Ha Lee

19

kabuk psql.exe içinde yürütmek

\! psql -V

13
Bu ona postgre istemcisinin sürümünü verecektir. Ben OP sql sunucu sürümünü istediğini düşünüyor.
SpKel

12

Basit bir yol, psql --versionterminali yazarak sürümü kontrol etmektir


3
Bunun yalnızca sunucudan oldukça farklı olabilecek istemci sürümünü size bildireceğini unutmayın. Kanonik yol için @ simhumileco'nun cevabına bakınız.
jstr

12

Kullanmak pgadmin4Sunucular> sunucu_adı_buraya> Özellikler sekmesine> Sürüm'e çift tıklayarak görülebilir:

Sürüm 3.5:

pgadmin4 postgres sürümünü göster.  Sunucular> sunucu_adı> Özellikler> Sürüm

Sürüm 4.1, 4.5:

resim açıklamasını buraya girin


Görmüyorum. Pgadmin 4 sürüm 4.1'i kullanma.
faintsignal

1
@faintsignal, pgadmin4 v4.1 için ekran görüntüsü ekledi, bu sürüm atlaması oldukça hızlı oldu.
jmunsch

1
Hata benim. Sunucuyu sağ tıklattığınızı düşündüm. Teşekkürler!
faintsignal

9

Pg_config komutu PostgreSQL programlarının kurulduğu dizini (--bindir), C'nin yerini dosyalar (--includedir) ve nesne kodu kitaplıkları (--libdir) ve PostgreSQL (--version) sürümünü bildirir :

$ pg_config --version
PostgreSQL 9.3.6

8

Benim durumumda

$psql
postgres=# \g
postgres=# SELECT version();
                                                       version
---------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.4.21 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.6.real (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
(1 row)

Umarım birine yardım eder


4

Eğer bir debian / ubuntu sisteminde sunucuya kabuk erişiminiz varsa (soru op'un sahip olmadığı, ancak varsa)

sudo apt-cache policy postgresql

yüklü sürümü çıkaracak,

postgresql:
  Installed: 9.6+184ubuntu1.1
  Candidate: 9.6+184ubuntu1.1
  Version table:
 *** 9.6+184ubuntu1.1 500
        500 http://in.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages
        500 http://in.archive.ubuntu.com/ubuntu artful-updates/main i386 Packages
        500 http://security.ubuntu.com/ubuntu artful-security/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu artful-security/main i386 Packages
        100 /var/lib/dpkg/status
     9.6+184ubuntu1 500
        500 http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages
        500 http://in.archive.ubuntu.com/ubuntu artful/main i386 Packages

burada Installed: <version>yüklü postgres paket sürümüdür.


1
Benzer bir fikir olarak, $ yum listbazı Postgresql paketlerinin kurulduğunu görmek için koştum .
Patrick

bu iyi çalışıyor.
Ubuntu

4

kullanmak VERSIONözel değişkeni

$psql -c "\echo :VERSION"

2

Bunun ne kadar güvenilir olduğunu bilmiyorum, ancak iki sürümün tam olarak otomatik olarak alabilirsiniz:

psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'

Böylece ikili dosyalara yollar oluşturabilirsiniz:

/usr/lib/postgresql/9.2/bin/postgres

9.2'yi bu komutla değiştirin.


psql --versionPostgres sunucusunun sürümünü değil , psqlistemcinin sürümünü döndürür
a_horse_with_no_name

1

PgAdmin'in geçerli sürümü için: yazma sırasında 4.16.

  1. Sürümü gereken DB'yi seçin.
  2. Sağ bölmedeki özellikler sekmesini tıklayın.

Aşağıdaki ekran görüntüsüne bakın: DB sürüm 10.10 gösteren PGAdmin 4.16


0

Eğer Select version()Memo ile döner komutunu bu şekilde kullanmayı deneyin:

Select version::char(100) 

veya

Select version::varchar(100)

2
select version()::varchar(100);benim için çalıştı, ama aynıversion()
isaaclw
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.