Jestem w środowisku korporacyjnym (z systemem Debian Linux) i sam go nie instalowałem. Dostęp do baz danych uzyskuję za pomocą Navicat lub phpPgAdmin (jeśli to pomaga). Nie mam również dostępu shellowego do serwera z bazą danych.
Jestem w środowisku korporacyjnym (z systemem Debian Linux) i sam go nie instalowałem. Dostęp do baz danych uzyskuję za pomocą Navicat lub phpPgAdmin (jeśli to pomaga). Nie mam również dostępu shellowego do serwera z bazą danych.
Odpowiedzi:
Uruchom to zapytanie z PostgreSQL:
SELECT version();
psql -c 'SELECT version();'
psql postgres -c 'SELECT version();'
sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL
powinno sprawić, że przeszłość „rola„ nazwa użytkownika ”nie istnieje”.
Wierzę, że tego właśnie szukasz
Wersja serwera:
pg_config --version
Wersja klienta:
psql --version
pg_config --version
może wprowadzać w błąd, np. jeśli uaktualnisz serwer Ubuntu i nie uruchomisz pg_upgradecluster
, pg_config wyświetli nową wersję zamiast tej, której nadal używasz.
pg_config --version
Polecenie: psql --version
nie działa, skarży się na to: 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
Jeśli masz więcej niż jedną instalację PostgreSQL lub otrzymujesz postgres: command not found
błąd „ ”:
$ 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
Jeśli locate
to nie pomoże, spróbuj 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
Chociaż postmaster
można go również użyć zamiast postgres
, postgres
preferowane jest używanie, ponieważ postmaster
jest to przestarzały alias postgres
.
W razie potrzeby zaloguj się jakopostgres
.
$ psql -V # Or --version
psql (PostgreSQL) 9.6.1
Jeśli masz więcej niż jedną instalację 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
Jeśli bardziej ciekawy, spróbuj => SHOW all;
.
Za to, co jest warte, można wykonać polecenie powłoki, psql
aby wyświetlić wersję klienta psql
pliku wykonywalnego na ścieżce. Zauważ, że bieg psql
może potencjalnie różnić się od tego na ścieżce.
=> \! psql -V
psql (PostgreSQL) 9.2.9
SHOW server_version;
Jest to bardzo przydatne w skryptach, aby uniknąć konieczności parsowania długiego ciągu SELECT version();
.
psql postgres -c "SHOW server_version" -t -A
. -t
usuwa nagłówki, -A
usuwa białe znaki wyrównania.
SHOW server_version_num
W szczególności dziękuję , co jest przydatne w przypadku nierówności.
Jeśli używasz CLI i jesteś postgres
użytkownikiem , możesz to zrobić:
psql -c "SELECT version();"
Możliwe wyjście :
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)
Przyjęta odpowiedź jest świetna, ale jeśli potrzebujesz programowo wchodzić w interakcje z wersją PostgreSQL, może lepiej:
SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too
Zwróci wersję serwera jako liczbę całkowitą. W ten sposób testowana jest wersja serwera w źródle PostgreSQL , np .:
/*
* 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...
*/
Wykonaj polecenie
psql -V
Gdzie
V musi być w formie kapitału.
psql
wersja (kliencka), a nie wersja serwera Postgres .
w shell psql.exe uruchom
\! psql -V
Używanie pgadmin4
go można zobaczyć, klikając dwukrotnie opcję Serwery> nazwa_serwera> karta Właściwości> Wersja:
Wersja 3.5:
Wersja 4.1, 4.5:
W moim przypadku
$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)
Mam nadzieję, że to komuś pomoże
Jeśli masz dostęp shellowy do serwera (pytanie wspomina, że op nie ma, ale jeśli masz,) w systemie debian / ubuntu
sudo apt-cache policy postgresql
który wyświetli zainstalowaną wersję,
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
gdzie Installed: <version>
jest zainstalowaną wersją pakietu postgres.
$ yum list
aby zobaczyć, że niektóre pakiety Postgresql zostały zainstalowane.
Nie wiem, na ile jest to wiarygodne, ale możesz uzyskać dwa tokeny wersji w pełni automatycznie:
psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'
Możesz więc budować ścieżki do plików binarnych:
/usr/lib/postgresql/9.2/bin/postgres
Po prostu zamień 9.2 na to polecenie.
psql --version
zwraca wersję psql
klienta, a nie wersję serwera Postgres
Dla bieżącej wersji PgAdmin: 4.16 w momencie pisania.