ฉันอยู่ในสภาพแวดล้อมขององค์กร (ใช้งาน Debian Linux) และไม่ได้ติดตั้งด้วยตนเอง ฉันเข้าถึงฐานข้อมูลโดยใช้ Navicat หรือ phpPgAdmin (หากช่วยได้) ฉันยังไม่มีสิทธิ์เข้าถึงเชลล์ไปยังเซิร์ฟเวอร์ที่รันฐานข้อมูล
ฉันอยู่ในสภาพแวดล้อมขององค์กร (ใช้งาน Debian Linux) และไม่ได้ติดตั้งด้วยตนเอง ฉันเข้าถึงฐานข้อมูลโดยใช้ Navicat หรือ phpPgAdmin (หากช่วยได้) ฉันยังไม่มีสิทธิ์เข้าถึงเชลล์ไปยังเซิร์ฟเวอร์ที่รันฐานข้อมูล
คำตอบ:
เรียกใช้แบบสอบถามนี้จาก PostgreSQL:
SELECT version();
psql -c 'SELECT version();'
psql postgres -c 'SELECT version();'
sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL
ควรให้คุณผ่าน "บทบาท" ชื่อผู้ใช้ "ไม่มีอยู่"
ฉันเชื่อว่านี่คือสิ่งที่คุณกำลังมองหา
รุ่นเซิร์ฟเวอร์:
pg_config --version
รุ่นลูกค้า:
psql --version
pg_config --version
อาจทำให้เข้าใจผิดเช่นหากคุณอัปเกรดเซิร์ฟเวอร์ Ubuntu และไม่ทำงาน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
$ 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
=> 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
SHOW server_version;
SELECT version();
psql postgres -c "SHOW server_version" -t -A
superuser: -t
ลบส่วนหัว-A
ลบช่องว่างการจัดตำแหน่ง
SHOW server_version_num
โดยเฉพาะอย่างยิ่งซึ่งมีประโยชน์สำหรับความไม่เท่าเทียมกัน
หากคุณใช้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)
คำตอบที่ได้รับการยอมรับนั้นยอดเยี่ยม แต่ถ้าคุณต้องการโต้ตอบโดยทางโปรแกรมกับเวอร์ชัน 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...
*/
ข้อมูลเพิ่มเติมที่นี่และที่นี่
ดำเนินการคำสั่ง
psql -V
ที่ไหน
Vต้องอยู่ในเมืองหลวง
psql
(ลูกค้า) รุ่นไม่รุ่นของ Postgres เซิร์ฟเวอร์
ในเชลล์ psql.exe ดำเนินการ
\! psql -V
วิธีง่ายๆคือการตรวจสอบเวอร์ชันโดยการพิมพ์psql --version
เทอร์มินัล
การใช้งานpgadmin4
สามารถมองเห็นได้โดยดับเบิลคลิกเซิร์ฟเวอร์> server_name_here> แท็บคุณสมบัติ> รุ่น:
เวอร์ชัน 3.5:
เวอร์ชั่น 4.1, 4.5:
คำสั่ง pg_config จะรายงานไดเรกทอรีที่ติดตั้งโปรแกรม PostgreSQL (--bindir) ตำแหน่งของ C ประกอบด้วยไฟล์ (- รวมถึง) และไลบรารีโค้ดวัตถุ (--libdir) และเวอร์ชันของ PostgreSQL (- รุ่น) :
$ pg_config --version
PostgreSQL 9.3.6
ในกรณีของฉัน
$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)
หวังว่ามันจะช่วยใครซักคน
หากคุณมีการเข้าถึงเชลล์ไปยังเซิร์ฟเวอร์ (คำถามที่กล่าวถึง op ไม่ได้มี แต่ในกรณีที่คุณมี) ในระบบเดเบียน / อูบุนตู
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>
เป็นเวอร์ชันแพ็คเกจของ postgres ที่ติดตั้งไว้
$ yum list
ไปดูแพ็คเกจ Postgresql บางตัวที่ติดตั้ง
ใช้VERSION
ตัวแปรพิเศษ
$psql -c "\echo :VERSION"
ไม่ทราบว่าสิ่งนี้น่าเชื่อถือเพียงใด แต่คุณสามารถรับโทเค็นรุ่นสองอย่างอัตโนมัติ:
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 --version
ส่งคืนเวอร์ชันของpsql
ไคลเอ็นต์ไม่ใช่เวอร์ชันของเซิร์ฟเวอร์ Postgres
สำหรับเวอร์ชั่นปัจจุบันของ PgAdmin: 4.16 ณ เวลาที่เขียน
หากSelect version()
กลับมาพร้อมกับบันทึกลองใช้คำสั่งด้วยวิธีนี้:
Select version::char(100)
หรือ
Select version::varchar(100)
select version()::varchar(100);
ทำงานให้ฉัน แต่เหมือนกันกับversion()