Sono in un ambiente aziendale (con Debian Linux) e non l'ho installato da solo. Accedo ai database usando Navicat o phpPgAdmin (se questo aiuta). Inoltre non ho accesso shell al server che esegue il database.
Sono in un ambiente aziendale (con Debian Linux) e non l'ho installato da solo. Accedo ai database usando Navicat o phpPgAdmin (se questo aiuta). Inoltre non ho accesso shell al server che esegue il database.
Risposte:
Esegui questa query da PostgreSQL:
SELECT version();
psql -c 'SELECT version();'
psql postgres -c 'SELECT version();'
sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL
dovrebbe farti passare "il ruolo 'nome utente' non esiste".
Credo che questo sia quello che stai cercando,
Versione del server:
pg_config --version
Versione client:
psql --version
pg_config --version
potrebbe essere fuorviante, ad esempio se si aggiorna un server Ubuntu e non si esegue pg_upgradecluster
, pg_config mostrerà la nuova versione anziché quella che si sta ancora utilizzando.
pg_config --version
Il comando: psql --version
non funziona, si lamenta per questo: 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
Se hai più di un'installazione di PostgreSQL o ottieni l' postgres: command not found
errore " ":
$ 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
Se locate
non aiuta, prova 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
Sebbene postmaster
possa essere utilizzato anche al posto di postgres
, postgres
è preferibile utilizzare perché postmaster
è un alias deprecato di postgres
.
Se pertinente, accedi comepostgres
.
$ psql -V # Or --version
psql (PostgreSQL) 9.6.1
Se hai più di un'installazione di 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
Se più curioso, prova => SHOW all;
.
Per quello che vale, un comando shell può essere eseguito all'interno psql
per mostrare la versione client psql
dell'eseguibile nel percorso. Si noti che la corsa psql
può potenzialmente essere diversa da quella nel percorso.
=> \! psql -V
psql (PostgreSQL) 9.2.9
SHOW server_version;
È molto utile negli script per evitare di dover analizzare la lunga serie di SELECT version();
.
psql postgres -c "SHOW server_version" -t -A
. -t
rimuove le intestazioni, -A
rimuove gli spazi bianchi di allineamento.
SHOW server_version_num
in particolare, utile per le disuguaglianze.
Se stai usando la CLI e sei un postgres
utente , puoi farlo:
psql -c "SELECT version();"
Uscita
possibile :
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)
La risposta accettata è ottima, ma se è necessario interagire a livello di codice con la versione PostgreSQL, forse è meglio farlo:
SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too
Restituirà la versione del server come intero. Ecco come viene testata la versione del server nell'origine PostgreSQL , ad esempio:
/*
* 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...
*/
Esegui comando
psql -V
Dove
V deve essere in maiuscolo.
psql
versione (client), non la versione del server Postgres .
nella shell psql.exe, eseguire
\! psql -V
Il suo utilizzo pgadmin4
può essere visualizzato facendo doppio clic su Server> nome_server_qui> scheda Proprietà> Versione:
Versione 3.5:
Versione 4.1, 4.5:
Nel mio caso
$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)
Spero che possa aiutare qualcuno
Se si dispone dell'accesso shell al server (la domanda menziona op non ha, ma nel caso lo si abbia) su un sistema debian / ubuntu
sudo apt-cache policy postgresql
che produrrà la versione installata,
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
dove Installed: <version>
è la versione del pacchetto postgres installato.
$ yum list
per vedere che alcuni pacchetti Postgresql erano installati.
Non so quanto sia affidabile, ma puoi ottenere due token della versione in modo completamente automatico:
psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'
Quindi puoi costruire percorsi per i binari:
/usr/lib/postgresql/9.2/bin/postgres
Sostituisci semplicemente 9.2 con questo comando.
psql --version
restituisce la versione del psql
client, non la versione del server Postgres
Per la versione corrente di PgAdmin: 4.16 al momento della scrittura.
Se Select version()
ritorna con Memo, prova a utilizzare il comando in questo modo:
Select version::char(100)
o
Select version::varchar(100)
select version()::varchar(100);
ha funzionato per me, ma era lo stesso diversion()