मैं PostgreSQL का कौन सा संस्करण चला रहा हूं?


1025

मैं एक कॉर्पोरेट वातावरण में हूं (डेबियन लिनक्स चला रहा हूं) और इसे स्वयं स्थापित नहीं किया। मैं Navicat या phpPgAdmin (यदि वह मदद करता है) का उपयोग कर डेटाबेस तक पहुँचता है। मेरे पास डेटाबेस चलाने वाले सर्वर तक शेल का उपयोग नहीं है।

जवाबों:


1644

PostgreSQL से यह क्वेरी चलाएँ:

SELECT version();

4
उबंटू में टर्मिनल में मेरे मामले में कोई परिणाम नहीं
टिमो

22
@Timo, यह PostgreSQL के माध्यम से चलाई जाने वाली क्वेरी है। यह एक क्वेरी चलाने के लिए pgAdmin, या किसी अन्य तंत्र के माध्यम से किया जा सकता है। क्या आप इसे उबंटू खोल से चलाने की कोशिश कर रहे थे? (यह काम नहीं करेगा)
अत्यधिक अनियमित

41
इसे कमांड लाइन से भी चलाया जा सकता हैpsql -c 'SELECT version();'
आरोन लेलेयर

3
आप सीधे पोस्ट के रूप में psql postgres -c 'SELECT version();'
डाक

22
@Frank H. का उपयोग करना: sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQLआपको "भूमिका 'उपयोगकर्ता नाम मौजूद नहीं होना चाहिए"।
मार्कस जुनियस ब्रूटस

550

मेरा मानना ​​है कि यह वही है जिसे आप ढूंढ रहे हैं,

सर्वर संस्करण:

pg_config --version

ग्राहक संस्करण:

psql --version

1
धन्यवाद! शेल एक्सेस उपलब्ध होने पर यह काम करता है। दुर्भाग्य से मेरे मामले में मेरी पहुँच नहीं है; मैंने सवाल अपडेट किया है।
अत्यधिक अनियमित

3
कभी-कभी क्लाइंट संस्करण वही होता है जो आप वैसे भी जानना चाहते हैं।
तर्जुक

12
फ्रैंक के रूप में, यह धोखा हो सकता है। psql जो भी पोस्टमास्टर / पोस्टग्रेज डेटाबेस प्रोसेस चल रहा है उससे कनेक्ट हो जाएगा और डेटाबेस इंजन psq कमांड के समान वर्जन नहीं हो सकता है।
बेन रॉबर्ट्स

2
pg_config --versionभ्रामक हो सकता है, जैसे यदि आप एक उबंटू सर्वर को अपग्रेड करते हैं और नहीं चलाते हैं pg_upgradecluster, तो pg_config आपके द्वारा उपयोग किए जा रहे एक के बजाय नया संस्करण दिखाएगा।
मारियस गेदमिनस

सिर्फ मेरे लिए यह काम करता है: pg_config --version आदेश: psql --version, नहीं काम करता है इस बात के लिए शिकायत: dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Referenced from: /usr/local/bin/psql Reason: image not found
रालोद

217

CLI का उपयोग करना:

सर्वर संस्करण:

$ 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

यदि PostgreSQL की एक से अधिक स्थापना हो रही है, या यदि " postgres: command not found" त्रुटि हो रही है :

$ 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

यदि locateमदद नहीं करता है, तो कोशिश करें 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

यद्यपि postmasterइसके बजाय इसका उपयोग भी किया जा सकता है postgres, का उपयोग postgresकरना बेहतर होता postmasterहै क्योंकि इसका एक अलग-अलग उपनाम है postgres

ग्राहक संस्करण:

प्रासंगिक के रूप में, लॉगिन करेंpostgres

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

यदि PostgreSQL की एक से अधिक स्थापना हो रही है:

$ 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 का उपयोग करना:

सर्वर संस्करण:

=> 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

यदि अधिक उत्सुक हैं, तो प्रयास करें => SHOW all;

ग्राहक संस्करण:

इसके लायक क्या है, पथ में निष्पादन योग्य psqlका क्लाइंट संस्करण दिखाने के लिए एक शेल कमांड निष्पादित किया जा सकता psqlहै। ध्यान दें कि रनिंग psqlसंभवतः पथ के एक से भिन्न हो सकती है।

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

12
धन्यवाद!, SHOW server_version;लंबे स्ट्रिंग में पार्स करने से बचने के लिए स्क्रिप्ट में बहुत आसान है SELECT version();
वाब

बहुत बहुत धन्यवाद। लोगों को यह महसूस नहीं होता है कि SQL कमांड जारी करने के लिए आपको डेटाबेस से जुड़ने के लिए कम से कम एक भूमिका जाननी होगी। लेकिन Postgres -V के साथ आपको इसके संस्करण को जानने के लिए डेटाबेस से कनेक्ट करने की आवश्यकता नहीं है।
नौकाचू

एक लाइन सीएलआई में सुपरसुसर पहुंच मानते हुए psql postgres -c "SHOW server_version" -t -A:। -tहेडर निकालता है, -Aअलाइनमेंट व्हाट्सएप हटाता है।
पॉकेटैंड

SHOW server_version_numविशेष रूप से, असमानताओं के लिए काम करने के लिए धन्यवाद ।
eswald

63

यदि आप CLI का उपयोग कर रहे हैं और आप एक postgres उपयोगकर्ता हैं , तो आप यह कर सकते हैं:

psql -c "SELECT version();"


संभव उत्पादन :

                                                         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

स्वीकृत उत्तर बहुत अच्छा है, लेकिन अगर आपको PostgreSQL संस्करण के साथ प्रोग्रामेटिक रूप से बातचीत करने की आवश्यकता है, तो शायद यह करना बेहतर है:

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

यह पूर्णांक के रूप में सर्वर संस्करण लौटाएगा। यह कैसे सर्वर संस्करण PostgreSQL स्रोत में परीक्षण किया जाता है , उदाहरण के लिए:

/*
 * 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...
     */  

अधिक जानकारी यहाँ और यहाँ


36

आदेश निष्पादित करें

psql -V

कहाँ पे

V राजधानी में होना चाहिए।


8
वह psqlक्लाइंट (क्लाइंट) संस्करण है, पोस्टग्रेज सर्वर का संस्करण नहीं
a_horse_with_no_name

करने के लिए समीक्षक : अगर जवाब गलत है लेकिन एक जवाब है (टिप्पणी की तरह निकलता है), विलोपन की सलाह नहीं देते: downvote! उदाहरण के लिए, " आप इसे गलत कर रहे हैं: निम्न गुणवत्ता वाले पदों की कतार में विवेक के लिए एक दलील " और " जब एक उत्तर गलत प्रश्न का उत्तर देता है, तो क्या यह एक उत्तर नहीं है? "। यह एक उत्तर है। आप इससे सहमत नहीं हो सकते हैं, लेकिन यह प्रश्न का उत्तर देने का एक प्रयास है।
वाई हा ली


12

एक सरल तरीका psql --versionटर्मिनल में टाइप करके संस्करण की जांच करना है


3
ध्यान दें कि यह आपको केवल क्लाइंट संस्करण बताएगा, जो संभवतः सर्वर से भिन्न हो सकता है। विहित तरीके के लिए @ simhumileco का उत्तर देखें।
२०:५० पर जौस्ट करें

12

pgadmin4इसका उपयोग करके डबल क्लिक करके देखा जा सकता है सर्वर> सर्वर_ नाम_का> गुण टैब> संस्करण:

संस्करण 3.5:

pgadmin4 शो संस्करण को पोस्टग्रेज करता है।  सर्वर> server_name> गुण> संस्करण

संस्करण ४.१, ४.५:

यहां छवि विवरण दर्ज करें


इसे न देखें। Pgadmin 4 संस्करण 4.1 का उपयोग करना।
faintsignal

1
@faintsignal ने pgadmin4 v4.1 के लिए स्क्रीनशॉट जोड़ा, जो कि वर्जनिंग जंप बहुत जल्दी हुआ।
जमुनाश्च

1
ओह, मेरी गलती है। मुझे लगा कि आप सर्वर को राइट-क्लिक कर रहे हैं, जिससे एक अलग "गुण" संवाद होता है। धन्यवाद!
faintsignal

9

Pg_config कमांड उस निर्देशिका की रिपोर्ट करेगी जहां PostgreSQL प्रोग्राम इंस्टॉल किए गए हैं (--bindir), C के स्थान में फ़ाइलें (--includedir) और ऑब्जेक्ट कोड लाइब्रेरी (--libdir), और PostgreSQL (--version) के संस्करण शामिल हैं :

$ pg_config --version
PostgreSQL 9.3.6

8

मेरे मामले में

$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)

आशा है कि यह किसी की मदद करेगा


4

यदि आपके पास सर्वर तक पहुंच है (प्रश्न में सेशन का उल्लेख नहीं है, लेकिन मामले में आपके पास है), डेबियन / ubuntu सिस्टम पर

sudo apt-cache policy postgresql

जो स्थापित संस्करण का उत्पादन करेगा,

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

जहां Installed: <version>स्थापित पोस्टग्रेज पैकेज संस्करण है।


1
एक समान विचार के रूप में, मैं $ yum listयह देखने के लिए दौड़ा कि कुछ पोस्टग्रैसकल पैकेज स्थापित किए गए थे।
पैट्रिक

यह अच्छा काम करता है। क्या आप बता सकते हैं कि ubuntu 16.04 पर 9.6 से 10. अपग्रेड करने के लिए कैसे करें
kRazzy R


2

पता नहीं यह कितना विश्वसनीय है, लेकिन आप संस्करण के दो टोकन पूरी तरह से स्वचालित रूप से प्राप्त कर सकते हैं:

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

तो आप बायनेरिज़ के लिए पथ बना सकते हैं:

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

इस आदेश के साथ बस 9.2 बदलें।


psql --versionpsqlक्लाइंट का संस्करण लौटाता है , पोस्टग्रेज सर्वर का संस्करण नहीं
a_horse_with_no_name

1

PgAdmin के वर्तमान संस्करण के लिए: लेखन के समय 4.16।

  1. वह DB चुनें जिसका संस्करण आपको चाहिए।
  2. दाएँ फलक में गुण टैब पर क्लिक करें।

नीचे स्क्रीनशॉट देखें: PGAdmin 4.16 DB संस्करण 10.10 दिखा रहा है


0

यदि Select version()मेमो के साथ रिटर्न इस तरह से कमांड का उपयोग करने की कोशिश करता है:

Select version::char(100) 

या

Select version::varchar(100)

2
select version()::varchar(100);मेरे लिए काम किया, लेकिन यह उसी तरह थाversion()
isaaclw
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.