首页 文章

我正在运行哪个版本的PostgreSQL?

提问于
浏览
731

我在公司环境中(运行Debian Linux)并没有自己安装它 . 我使用Navicat或phpPgAdmin访问数据库(如果有帮助的话) . 我也没有shell访问运行数据库的服务器 .

12 回答

  • 8

    从PostgreSQL运行此查询:

    SELECT version();
    
  • 1

    如果你在debian / ubuntu系统上有shell访问服务器(提出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包版本 .

  • 1

    我相信这就是你要找的东西,

    服务器版本:

    pg_config --version
    

    客户版本:

    psql --version
    
  • 0

    使用CLI:

    服务器版本:

    $ 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 ,因为 postmasterpostgres 的弃用别名 .

    客户端版本:

    相关的,login as 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
    

    使用SQL:

    服务器版本:

    => 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; .

    客户端版本:

    对于它的 Value ,可以在 psql 内执行shell命令,以在路径中显示 psql 可执行文件的客户端版本 . 请注意,运行 psql 可能与路径中的运行不同 .

    => \! psql -V
    psql (PostgreSQL) 9.2.9
    
  • 34

    使用 pgadmin4 可以通过双击Servers> server_name_here> Properties> Version看到它:

  • 8

    执行命令

    psql -V
    

    哪里

    V必须是资本 .

  • 16

    如果 Select version() 与Memo一起返回,请尝试以这种方式使用命令:

    Select version::char(100)
    

    要么

    Select version::varchar(100)
    
  • 1144

    不知道这有多可靠,但你可以完全自动获得两个版本的令牌:

    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 .

  • 2

    在shell psql.exe中,执行

    \! psql -V
    
  • 13

    接受的答案很棒,但是如果你需要以编程方式与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...
         */
    

    更多信息herehere .

  • 183

    在我的情况下

    $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)
    

    希望它会帮助某人

  • 417

    pg_config命令将报告安装PostgreSQL程序的目录(--bindir),C包含文件(--includedir)和目标代码库(--libdir)的位置,以及PostgreSQL的版本(--version) :

    $ pg_config --version
    PostgreSQL 9.3.6
    

相关问题