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 --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.
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 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.
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 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
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. -tbaşlıkları kaldırır, -Aboşlukları hizalamayı kaldırır.
SHOW server_version_numEş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 pgadmin4Sunucular> 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 listbazı 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 --versionPostgres sunucusunun sürümünü değil , psqlistemcinin sürümünü döndürür
PgAdmin'in geçerli sürümü için: yazma sırasında 4.16.