Estou em um ambiente corporativo (executando o Debian Linux) e não o instalei. Eu acesso os bancos de dados usando Navicat ou phpPgAdmin (se isso ajudar). Também não tenho acesso de shell ao servidor que está executando o banco de dados.
Estou em um ambiente corporativo (executando o Debian Linux) e não o instalei. Eu acesso os bancos de dados usando Navicat ou phpPgAdmin (se isso ajudar). Também não tenho acesso de shell ao servidor que está executando o banco de dados.
Respostas:
Execute esta consulta no PostgreSQL:
SELECT version();
psql -c 'SELECT version();'
psql postgres -c 'SELECT version();'
sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL
você deve passar "papel 'nome de usuário' não existe".
Eu acredito que é isso que você está procurando,
Versão do servidor:
pg_config --version
Versão do cliente:
psql --version
pg_config --version
pode ser enganoso, por exemplo, se você atualizar um servidor Ubuntu e não executar pg_upgradecluster
, o pg_config mostrará a nova versão em vez da que você ainda está usando.
pg_config --version
O comando: psql --version
não funciona, reclama por isso: 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 houver mais de uma instalação do PostgreSQL ou se estiver recebendo o postgres: command not found
erro " ":
$ 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
não ajudar, tente 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
Embora postmaster
também possa ser usado em vez de postgres
, postgres
é preferível usar porque postmaster
é um alias obsoleto de postgres
.
Como relevante, faça o login comopostgres
.
$ psql -V # Or --version
psql (PostgreSQL) 9.6.1
Se houver mais de uma instalação do 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 mais curioso, tente => SHOW all;
.
Pelo que vale, um comando shell pode ser executado dentro psql
para mostrar a versão do cliente do psql
executável no caminho. Observe que a execução psql
pode ser potencialmente diferente daquela no caminho.
=> \! psql -V
psql (PostgreSQL) 9.2.9
SHOW server_version;
é muito útil em scripts para evitar a análise na longa sequência de SELECT version();
.
psql postgres -c "SHOW server_version" -t -A
. -t
remove cabeçalhos, -A
remove o espaço em branco do alinhamento.
SHOW server_version_num
em particular, o que é útil para as desigualdades.
Se você estiver usando a CLI e for um postgres
usuário , poderá fazer o seguinte:
psql -c "SELECT version();"
Saída
possível :
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)
A resposta aceita é ótima, mas se você precisar interagir programaticamente com a versão do PostgreSQL, talvez seja melhor fazer:
SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too
Ele retornará a versão do servidor como um número inteiro. É assim que a versão do servidor é testada na fonte do PostgreSQL , por exemplo:
/*
* 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...
*/
Executar comando
psql -V
Onde
V deve estar em maiúscula.
psql
versão (cliente), não a versão do servidor Postgres .
no shell psql.exe, execute
\! psql -V
Para usá- pgadmin4
lo, clique duas vezes em Servidores> server_name_here> guia Propriedades> Versão:
Versão 3.5:
Versão 4.1, 4.5:
No meu 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)
Espero que ajude alguém
Se você tiver acesso shell ao servidor (a pergunta menciona op não, mas no caso de você possuir) em um sistema debian / ubuntu
sudo apt-cache policy postgresql
que produzirá a versão instalada,
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
onde Installed: <version>
é a versão do pacote postgres instalado.
$ yum list
para ver que determinados pacotes do Postgresql estavam instalados.
Não sabe o quão confiável é isso, mas você pode obter dois tokens de versão totalmente automaticamente:
psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'
Assim, você pode criar caminhos para os binários:
/usr/lib/postgresql/9.2/bin/postgres
Apenas substitua 9.2 por este comando.
psql --version
retorna a versão do psql
cliente, não a versão do servidor Postgres
Para a versão atual do PgAdmin: 4.16 no momento da escrita.
Se Select version()
retornar com Memo, tente usar o comando desta maneira:
Select version::char(100)
ou
Select version::varchar(100)
select version()::varchar(100);
funcionou para mim, mas era o mesmo queversion()