千家信息网

CentOS/RHEL 7上PostgreSQL如何安装配置

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了CentOS/RHEL 7上PostgreSQL如何安装配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。安装Pos
千家信息网最后更新 2026年11月02日CentOS/RHEL 7上PostgreSQL如何安装配置

这篇文章主要介绍了CentOS/RHEL 7上PostgreSQL如何安装配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

安装PostgreSQL 9.6为例:

安装

Install the repository RPM
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm

Install the client packages
yum install postgresql96

Install the server packages
yum install postgresql96-server

Initialize the database and enable automatic start
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6

配置

编辑/var/lib/pgsql/9.6/data/postgresql.conf,修改listen_addresses,监听所有地址:

listen_addresses = '*'

编辑/var/lib/pgsql/9.6/data/pg_hba.conf,修改认证方式:

# "local" is for Unix domain socket connections onlylocal   all             all                                         trust# IPv4 local connections:host    all             all             127.0.0.1/32              identhost    all             all             0.0.0.0/0                 md5

重启PostgreSQL
systemctl restart postgresql-9.6

认证方式

认证方式支持"trust", "reject", "md5", "password", "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" , "cert"。

  • trust 任何人都可以访问数据库,需要指定数据库用户名。如上,本地可以使用psql -U postgres连接数据库(当未指定数据库用户名时,默认为root)。

  • password 密码认证,发送明文密码

  • md5 密码认证,发送经MD5加密的密码,假如数据库服务器IP是10.188.13.29,则可以这样访问:psql -h 10.188.13.29 -U postgres,回车后会提示输入密码。

  • ident 从ident server获取客户端操作系统的用户名,当与数据库用户名匹配时则可访问。当ident配置在local连接时,将使用peer替代。存在安全隐患,仅适用于封闭网络,不建议使用。

  • peer 从kernel获取客户端操作系统的用户名,当与数据库用户名匹配时则可访问,仅用于local连接。如local配置为peer时,可以这样访问psql -U postgres
    当操作系统用户名与数据库用户名不一致时可以在文件pg_ident.conf中配置map关系,如下:

    # MAPNAME       SYSTEM-USERNAME         PG-USERNAMEomicron                root                                      postgres

    然后在pg_hba.conf中配置使用map:

    local   all             all                                     peer map=omicronhost   all             all             127.0.0.1/32            ident map=omicron

PSQL

连接PostgreSQL
psql -U postgres

更多参数可以查看帮助psql --help

刷新配置
修改配置文件后,可执行以下命令刷新配置:
select pg_reload_conf();

更改密码
ALTER USER postgres WITH PASSWORD 'postgres';

查看用户
select * from pg_shadow;

查看data文件夹所在目录
show data_directory;

创建用户
CREATE USER test WITH PASSWORD 'test';
ALTER USER test WITH SUPERUSER;

创建SCHEMA
CREATE SCHEMA test;
ALTER SCHEMA test OWNER TO test;

查看SCHEMA
\dn

设置Search Path
SET search_path TO test;

查看Table
\dt

查看Sequence
\ds

查看View
\dv

查看Table Sequence View
\d

执行sql脚本
\i test.sql

Sequence
查询sequence(currval(), nextval())
select nextval('test_sequence');

更新sequence
alter sequence test_sequence restart with 42;

退出
\q

帮助
help
\? for help with psql commands
\h for help with SQL commands

备份与恢复

pg_dump -h host1 -U postgres [-n schema] dbname > outfile
psql -U postgres dbname < infile

也可直接备份data目录
tar -cf backup.tar /usr/local/pgsql/data

存储过程

清空所有表数据的一个小存储过程(schema名称为test):

-- FUNCTION: test.truncatealltable()    -- DROP FUNCTION test.truncatealltable();    CREATE OR REPLACE FUNCTION test.truncatealltable()      RETURNS text      LANGUAGE 'plpgsql'    AS $BODY$    DECLARE      cur_all_tables CURSOR FOR        select relname from pg_class        where relnamespace = (select oid from pg_namespace where nspname = 'test')          and relkind = 'r' order by relname;      truncate_sql CHARACTER VARYING(100);       BEGIN          FOR record IN cur_all_tables      LOOP                     truncate_sql := concat('truncate table test.', record.relname, ' cascade');          EXECUTE truncate_sql;              END LOOP;        return 'success';  END    $BODY$;

感谢你能够认真阅读完这篇文章,希望小编分享的"CentOS/RHEL 7上PostgreSQL如何安装配置"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

配置 用户 数据 数据库 用户名 密码 认证 篇文章 操作系统 文件 方式 系统 帮助 备份 客户 客户端 更多 目录 过程 存储 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 耶加雪菲 互联网科技企业 互联网加科技 互联网科技工作委员会 涨乐互联网科技 猪兼强互联网科技 广州善班互联网科技 常德市电业局互联网科技部 河南猎农互联网科技有限公司 昭通互联网科技选哪家 互联网科技革命什么开始 晓花互联网科技有限公司网址 中国科技创新与世界互联网大会 区块链结合互联网科技 本届互联网大会上的黑科技 新氧科技和美国互联网有关系吗 上海同邻互联网科技有限公司规模 版纳互联网科技选哪家 深圳互联网科技园地址 盐城市攀科互联网科技有限公司 广州紫鲸互联网科技有限公司 网络科技有限互联网 北京互联网科技有限公司 丰台科技园 互联网 深圳天众互联网科技公司 创业天下互联网科技有限公司 互联网科技产业特征 萌小萌互联网科技河南有限公司 互联网大会出现的黑科技 知域互联网科技有限公司官网
0