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.
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:
Bu sorguyu PostgreSQL'den çalıştırın:
SELECT version();
psql -c 'SELECT version();'
psql postgres -c 'SELECT version();'
sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL
"rol" kullanıcı adı "yok" geçmiş olsun gerekir.
Aradığın şey olduğuna inanıyorum,
Sunucu sürümü:
pg_config --version
İstemci sürümü:
psql --version
pg_config --version
yanı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.
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
$ 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 locate
yardı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 postmaster
da postgres
, postgres
kullanım tercih edilir çünkü postmaster
kullanımdan kaldırılmış bir takma adıdır postgres
.
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
=> 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;
.
Değer için, yürütülebilir komut dosyasının yoldaki psql
istemci sürümünü göstermek için içinde bir kabuk komutu psql
yürütülebilir. Koşunun psql
potansiyel olarak yoldakinden farklı olabileceğini unutmayın .
=> \! psql -V
psql (PostgreSQL) 9.2.9
SHOW server_version;
Uzun dizede ayrıştırmak zorunda kalmamak için komut dosyalarında çok kullanışlıdır SELECT version();
.
psql postgres -c "SHOW server_version" -t -A
. -t
başlıkları kaldırır, -A
boşlukları hizalamayı kaldırır.
SHOW server_version_num
Eşitsizlikler için kullanışlı olan özellikle teşekkür ederiz .
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)
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...
*/
Komutu çalıştır
psql -V
Nerede
V başkentte olmalı.
psql
(istemci) sürümüdür .
kabuk psql.exe içinde yürütmek
\! psql -V
Kullanmak pgadmin4
Sunucular> sunucu_adı_buraya> Özellikler sekmesine> Sürüm'e çift tıklayarak görülebilir:
Sürüm 3.5:
Sürüm 4.1, 4.5:
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
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.
$ yum list
bazı Postgresql paketlerinin kurulduğunu görmek için koştum .
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 --version
Postgres sunucusunun sürümünü değil , psql
istemcinin sürümünü döndürür
PgAdmin'in geçerli sürümü için: yazma sırasında 4.16.