PostgreSQL的配置文件主要有如下3个(postgresql.conf,pg_hba.conf,pg_ident.conf)
可以通过如下方式查找:
postgres=# select name, setting from pg_settings where category='File Locations' ;
name | setting
-------------------+----------------------------------------
config_file | /var/lib/pgsql/10/data/postgresql.conf
data_directory | /var/lib/pgsql/10/data
external_pid_file |
hba_file | /var/lib/pgsql/10/data/pg_hba.conf
ident_file | /var/lib/pgsql/10/data/pg_ident.conf
(5 rows)

也可以使用find查找:若普通用户在Linux的文件夹下查找,可能会找不到,因为权限不足.可以通过root使用find查找.
[root@srv /]# find / -name pg_hba.conf
/var/lib/pgsql/10/data/pg_hba.conf

===1=== postgresql.conf 数据库相关配置
该文件包含一些通用设置,比如内存分配,新建database的默认存储位置,PostgreSQL服务器的IP地址,日志的位置以及许多其他设置。

postgres=# select name, context, unit, setting, boot_val, reset_val from pg_settings where name in ('listen_address','max_connetctons','shared_buffers','effective_cache_size','work_mem','maintenance_work_mem') order by context, name;
name | context | unit | setting | boot_val | reset_val
----------------------+------------+------+---------+----------+-----------
shared_buffers | postmaster | 8kB | 16384 | 1024 | 16384
effective_cache_size | user | 8kB | 524288 | 524288 | 524288
maintenance_work_mem | user | kB | 65536 | 65536 | 65536
work_mem | user | kB | 4096 | 4096 | 4096
(4 rows)

context 设置为postmaster,更改此形参后需要重启PostgreSQL服务才能生效;
设置为user,那么只需要执行一次重新加载即可全局生效。重启数据库服务会终止活动连接,但重新加载不会。
unit 字段表示这些设置的单位;
setting是指当前设置;boot_val是指默认设置;reset_val是指重新启动服务器或重新加载设置之后的新设置;
在postgresql.conf中修改了设置后,一定记得查看一下setting和reset_val并确保二者是一致,否则说明设置并未生效,需要重新启动服务器或者重新加载设置

===2=== pg_hba.conf 客户端认证配置文件
允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模式

pg_hba.conf 客户端认证配置文件的认证类型包括:
> trust 本地可以使用 psql -U postgres 直接登录服务器; (生产环境勿用)
> peer 本地可以使用 psql -h 127.0.0.1 -d postgres -U postgres 直接登录服务器; (peer使用发起端的操作系统名进行身份验证)
> password 使用 用户名密码(明文密码) 登录 ; (生产环境勿用)
> ident ident是Linux下PostgreSQL默认的local认证方式,凡是能正确登录服务器的操作系统用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库。
> md5 md5是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户
> reject 拒绝认证
建议使用md5方式,不同用户相同密码加密的结果也不相同,因为会使用用户名和密码一同加密. 所以要注意:若已设密码的用户名称改变了,密码也会失效...
Ident和peer模式适用于Linux,Unix和Mac,不适用于windwos

===3=== pg_ident.conf 用户映射文件 若客户端使用ident类型认证,就需要这里的映射关系了.
比如,服务器上有名为user1的操作系统用户,同时数据库上也有同名的数据库用户,user1登录操作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。
很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误,明明数据库用户已经createuser。
原因就在于此,使用了ident认证方式,却没有同名的操作系统用户或没有相应的映射用户。
解决方案:1、在pg_ident.conf中添加映射用户;2、改变认证方式。

CentOS7安装了PostgreSQL10和pgadmin4后,pgadmin4始终登陆数据库提示用户认证失败,
就是因为Linux下PostgreSQL默认的local认证方式是ident,而pg_ident.cong用户映射文件里并没有任何映射用户,
所以可以修改认证方式为md5,即可使用密码成功登陆了.

===========================
https://www.cnblogs.com/hiloves/archive/2011/08/20/2147043.html
https://pylixm.cc/posts/2017-11-05-postgresql-install.html
https://blog.csdn.net/mbshqqb/article/details/78622167
https://yq.aliyun.com/articles/79330
http://blog.51cto.com/corasql/1910485
http://axiaoxin.com/article/121/

PostgreSQL的配置文件的更多相关文章

  1. CentOS7下安装并简单设置PostgreSQL笔记

    为什么是PostgreSQL? 在.NET Core诞生之前,微软平台上最常见的开发组件便是.NET Framework + SQL Server了,但是现在.NET Core终于让跨平台部署成为了现 ...

  2. PostgreSQL 允许远程访问设置方法

     安装PostgreSQL数据库之后,默认是只接受本地访问连接.如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置. 配置远程连接PostgreSQL数据库的步骤很简单,只需 ...

  3. postgresql pgsql最新版安装指南及数据存储路径更改及主从配置

    postgresql pgsql最新版安装指南及数据存储路径更改及主从配置 安装指南 首先在apt的list添加你当前系统版本对应的apt列表 目前官网有16.04,14.04,12.04 分别对应下 ...

  4. hook in PostgreSQL初探

    HOOK IN POSTGRESQL 初探 前言 众所周知,PostgreSQL具有很好的扩展性,是一个可以"开发"的数据库.在PostgreSQL里面,你可以定制你自己的Type ...

  5. linux下postgresql的连接数配置

    1.查询当前连接数: select count(*) from pg_stat_activity; 2.查询最大连接数 show max_connections; 3.修改最大连接数 SHOW con ...

  6. PostgreSQL进程和内存结构

    PostgreSQL数据库启动时,会先启动一个叫做Postmaster的主进程,还会fork一些辅助子进程,这些辅助子进程各自负责一部分功能,辅助子进程分类如下: $ ps -ef | grep po ...

  7. PostgreSQL执行超时的问题

    PostgreSQL执行超时的问题 使用背景 最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction ...

  8. ubuntu 16.04.1 LTS postgresql安装配置

    postgresql安装--------------------二进制安装:wget https://get.enterprisedb.com/postgresql/postgresql-9.5.6- ...

  9. PostgreSQL修改数据库目录/数据库目录迁移

    说明:以9+版本为例,10+的版本只要把目录替换一下即可.迁移目录肯定是要停服的! 1.在数据库软件安装之后,初始化数据库时候,可以指定初始化时创建的数据库的默认文件路径 /usr/local/pgs ...

随机推荐

  1. Maven常见jar包依赖

    <!-- servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactI ...

  2. shell test判断命令

    判断命令test 使用test命令可以对文件,字符串等进行测试,一般配合控制语句使用,如while,if,case "字符串测试"   test str1==str2 测试字符串是 ...

  3. OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/django'

    http://blog.csdn.net/qq_34078897/article/details/50821553 权限问题,sudo

  4. java的八大排序

    public class Sort2 { public static void main(String[] args) { Sort2 sort = new Sort2(); System.out.p ...

  5. html5游戏之Box2d物理引擎集成

    前面两章我们已经研究了如何使用Box2d来模拟游戏世界,这一章就把所有的东西拼凑在一起,最终完成我们的游戏. 一.定义物体 典型的物体: {type:'ground',name:'dirt',x:50 ...

  6. Java第5次

    1. 请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 显示结果: truetruefalse 总结:在Java中,内容相同的字串常量(“ ...

  7. Spring-data-JPA详细介绍

    Spring-data-JPA学习: 1. https://blog.csdn.net/liujianwd/article/details/75411009 2.http://www.cnblogs. ...

  8. 乘法“*”和点乘“.*”&除法“/”和点除“./”区别

    reference:https://blog.csdn.net/xiaotao_1/article/details/79026406 一,*和.*的联系和区别.  1,在进行数值运行和数值乘矩阵,这两 ...

  9. centos7安装配置zabbix4.0

    zabbix01    198.8.8.211    zabbix-server4.0 zabbix02    198.8.8.212    zabbix-agent4.0 一:zabbix服务端环境 ...

  10. CentOS7安装Nginx及配置

    Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.**它最常的用途是提供反向代理服务.** 安装   在Centos下,yum源不 ...