답변:
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
. -t
헤더를 -A
제거하고 정렬 공백을 제거합니다.
SHOW server_version_num
불평등에 유용한 특히 감사합니다 .
CLI를 사용 하고 있고 postgres
user 인 경우 다음을 수행 할 수 있습니다.
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
(클라이언트) 버전, 하지 포스트그레스의 버전 서버 .
쉘 psql.exe에서 실행
\! psql -V
나의 경우에는
$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 패키지가 설치되어 있음을 알았습니다 .
이것이 얼마나 안정적인지 모르지만 두 가지 버전의 토큰을 완전히 자동으로 얻을 수 있습니다.
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
Postgres 서버 버전이 아닌psql
클라이언트 버전을 반환 합니다.