Estoy en un entorno corporativo (ejecutando Debian Linux) y no lo instalé yo mismo. Accedo a las bases de datos usando Navicat o phpPgAdmin (si eso ayuda). Tampoco tengo acceso de shell al servidor que ejecuta la base de datos.
Estoy en un entorno corporativo (ejecutando Debian Linux) y no lo instalé yo mismo. Accedo a las bases de datos usando Navicat o phpPgAdmin (si eso ayuda). Tampoco tengo acceso de shell al servidor que ejecuta la base de datos.
Respuestas:
Ejecute esta consulta desde PostgreSQL:
SELECT version();
psql -c 'SELECT version();'
psql postgres -c 'SELECT version();'
sudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL
debería pasar "el rol 'nombre de usuario' no existe".
Creo que esto es lo que estás buscando,
Versión del servidor:
pg_config --version
Versión del cliente:
psql --version
pg_config --version
podría ser engañoso, por ejemplo, si actualiza un servidor Ubuntu y no lo ejecuta pg_upgradecluster
, pg_config mostrará la nueva versión en lugar de la que todavía está usando.
pg_config --version
El comando: psql --version
no funciona, se queja por esto: 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
Si tiene más de una instalación de PostgreSQL, o si recibe el postgres: command not found
error " ":
$ 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
Si locate
no ayuda, intente 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
Aunque postmaster
también se puede usar en lugar de postgres
, postgres
es preferible usarlo porque postmaster
es un alias obsoleto depostgres
.
Tan relevante, inicie sesión comopostgres
.
$ psql -V # Or --version
psql (PostgreSQL) 9.6.1
Si tiene más de una instalación de 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
Si tienes más curiosidad, prueba => SHOW all;
.
Para lo que vale, se puede ejecutar un comando de shell psql
para mostrar la versión del cliente del psql
ejecutable en la ruta. Tenga en cuenta que la ejecución psql
puede ser potencialmente diferente de la de la ruta.
=> \! psql -V
psql (PostgreSQL) 9.2.9
SHOW server_version;
Es muy útil en los scripts para evitar tener que analizar en la larga cadena de SELECT version();
.
psql postgres -c "SHOW server_version" -t -A
. -t
elimina encabezados, -A
elimina espacios en blanco de alineación.
SHOW server_version_num
en particular, lo cual es útil para las desigualdades.
Si está utilizando CLI y es un postgres
usuario , puede hacer esto:
psql -c "SELECT version();"
Salida
posible :
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 respuesta aceptada es excelente, pero si necesita interactuar mediante programación con la versión PostgreSQL, tal vez sea mejor hacerlo:
SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too
Devolverá la versión del servidor como un entero. Así es como se prueba la versión del servidor en la fuente PostgreSQL , por ejemplo:
/*
* 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...
*/
Ejecutar comando
psql -V
Dónde
V debe estar en mayúscula.
psql
versión (cliente), no la versión del servidor Postgres .
en shell psql.exe, ejecute
\! psql -V
El uso pgadmin4
se puede ver haciendo doble clic en Servidores> nombre_servidor_aquí> pestaña Propiedades> Versión:
Versión 3.5:
Versión 4.1, 4.5:
En mi 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 ayude a alguien
Si tiene acceso de shell al servidor (la pregunta menciona que no tiene op, pero en caso de que lo tenga) en un sistema debian / ubuntu
sudo apt-cache policy postgresql
que dará salida a la versión 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
donde Installed: <version>
está la versión instalada del paquete postgres.
$ yum list
para ver que se instalaron ciertos paquetes Postgresql.
No sé qué tan confiable es esto, pero puede obtener dos tokens de versión de forma totalmente automática:
psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'
Para que pueda crear rutas a binarios:
/usr/lib/postgresql/9.2/bin/postgres
Simplemente reemplace 9.2 con este comando.
psql --version
devuelve la versión del psql
cliente, no la versión del servidor Postgres
Para la versión actual de PgAdmin: 4.16 en el momento de la escritura.