AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
主页 / dba / 问题 / 83984
Accepted
Jin
Jin
Asked: 2014-12-02 02:54:58 +0800 CST2014-12-02 02:54:58 +0800 CST 2014-12-02 02:54:58 +0800 CST

连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

  • 772

我正在尝试运行一个发送给我的网站,但这样做之后出现了这个错误

连接到 PostgreSQL 服务器:致命:主机“4X.XXX.XX.XXX”、用户“userXXX”、数据库“dbXXX”没有 pg_hba.conf 条目,C:\xampp\htdocs\xmastool\index.php 中的 SSL 关闭第 37 行

我发现这个答案说我只需要在pg_hba.conf文件中为该特定用户添加一个条目。

这是我的pg_hba.conf文件。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
local dbXXX userXXX md5
host    dbXXX  userXXX  XX.XXX.XXX.XXX           md5
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

但这样做之后,错误仍然存​​在。我重新启动了我的 XAMPP 服务器几次,但没有任何变化。

我需要改变pg_hba.conf什么?

postgresql pg-hba.conf
  • 12 12 个回答
  • 892678 Views

12 个回答

  • Voted
  1. Best Answer
    Jérôme Radix
    2014-12-02T05:49:55+08:002014-12-02T05:49:55+08:00

    在您的 中添加或编辑以下行postgresql.conf:

    listen_addresses = '*'
    

    将以下行添加为pg_hba.conf. 它允许使用加密密码的所有用户访问所有数据库:

    # TYPE DATABASE USER CIDR-ADDRESS  METHOD
    host  all  all 0.0.0.0/0 md5
    

    添加此service postgresql restart命令或设置的等效命令后重新启动 Postgresql。对于酿造,brew services restart postgresql

    • 385
  2. Jose Nobile
    2015-11-28T13:18:39+08:002015-11-28T13:18:39+08:00

    此解决方案适用于 IPv4 / IPv6:

    编辑 pga_hba.conf 文件

    pga_hba.conf在您喜欢的编辑器中打开文件:

    [[email protected] ~]#  nano /var/lib/pgsql/data/pg_hba.conf
    

    附加到 pga_hba.conf 文件

    将以下行追加到pga_hba.conf文件末尾:

    host all all      ::1/128      md5
    host all postgres 127.0.0.1/32 md5
    

    退出并保存您喜欢的编辑器。

    重启服务

    postgresql使用以下命令重新启动服务:

    [[email protected] ~]# /etc/init.d/postgresql restart
    
    • 34
  3. Roberto Lopez
    2017-06-05T22:23:10+08:002017-06-05T22:23:10+08:00

    我解决这个问题的方法是:

    在中添加如下行pg_hba.conf:

    hostnossl    all          all            0.0.0.0/0  trust        
    

    并在 中进行了修改postgresql.conf,如图所示:

    listen_addresses = '*'  
    

    我让这个实例在Azure的 VM 中的Centos 7.3和Postgres 9.5上运行,因为这是一个 POC(概念证明),您不会希望在实际生产环境中没有 SSL 进行连接。

    要连接到我在 macOS Sierra上使用pgAdmin 4的实例。

    • 26
  4. willianpts
    2017-12-06T15:02:58+08:002017-12-06T15:02:58+08:00

    全新 Postgres 9.5 安装,Ubuntu。

    关键是本地连接类型,因为 psql 使用域套接字连接。

    pg_hba.conf

    # TYPE DATABASE USER CIDR-ADDRESS  METHOD
    local all all md5
    host  all  all 0.0.0.0/0 md5
    
    • 13
  5. Eugene Kulabuhov
    2019-05-19T15:45:12+08:002019-05-19T15:45:12+08:00

    给 Debian 用户的说明。

    以 posgres 用户身份登录:

    $ sudo su - postgres
    

    通过查询数据库获取 pg_hba.conf 的位置:

    $ psql -c "SHOW hba_file;"
    
                  hba_file               
    -------------------------------------
    /etc/postgresql/11/main/pg_hba.conf
    (1 row)
    

    打开 pg_hba.conf:

    nano /etc/postgresql/11/main/pg_hba.conf
    

    在显示“将您的实际配置放在这里”的位置添加配置:

    # TYPE DATABASE USER CIDR-ADDRESS  METHOD
    host  all  all 0.0.0.0/0 md5
    

    注销您的用户:

    $ exit
    logout
    

    重新启动您的 postgres 服务器以使更改生效:

    $ sudo systemctl restart postgresql
    
    • 11
  6. nguyên
    2018-11-06T18:04:35+08:002018-11-06T18:04:35+08:00
    1. 在底部添加以下行pg_hba.conf:

      hostnossl all all 0.0.0.0/0 md5

    2. 添加/修改以下行postgresql.conf:

      listen_addresses = '*'

    3. 确保正在连接的用户有密码:(示例连接用户名为postgres)

      一个。使用用户帐户运行以下psql命令:postgres

      sudo -u postgres psql postgres

      湾。设置密码:

      # \password postgres

    在此处输入图像描述

    • 10
  7. Ravistm
    2018-03-31T05:06:14+08:002018-03-31T05:06:14+08:00

    这对我有用:(pg_hba.conf)

    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    # "local" is for Unix domain socket connections only     
    local   all             all                                     md5
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    host    all             all             0.0.0.0/0               trust
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    host    all             all             0.0.0.0/0               trust
    

    相信

    无条件允许连接。此方法允许任何可以连接到 PostgreSQL 数据库服务器的人以他们希望的任何 PostgreSQL 用户身份登录,而无需密码或任何其他身份验证。

    md5

    要求客户端提供双 MD5 哈希密码进行身份验证。

    参考这里更多

    • 6
  8. Finesse
    2018-03-24T18:02:54+08:002018-03-24T18:02:54+08:00

    当我尝试使用 SSH 隧道连接到本地数据库时,我遇到了同样的错误。我通过将主机名从更改为来解决localhost它127.0.0.1。

    • 5
  9. CrazyPyro
    2020-10-22T05:01:40+08:002020-10-22T05:01:40+08:00

    就我而言,我遇到了这个问题,我无权编辑服务器上的任何 conf 文件(.NET 连接到 DigitalOcean 上的托管数据库),所以其他答案不是一个选项。

    主持人为我提供了一个postgresql://连接 URL,最后有一个?sslmode=选项。"SSL Mode=Prefer;Trust Server Certificate=true;"在添加到翻译后的.NET connectionString之前,我得到了完全相同的错误。

    这可能不是我或您的最佳解决方案,但我想指出这可能是连接字符串而不是服务器配置的问题。

    • 4
  10. WesternGun
    2018-10-10T02:41:13+08:002018-10-10T02:41:13+08:00

    就我而言,我必须按照错误信息的建议添加确切的行。无法通过添加具有所有 IP 的“所有”用户作为规则来绕过它。现在是这样的:

    CentOS 7 上的 PosgreSQL 10.5。

    # IPv4 local connections:
    host    all             all             127.0.0.1/32                    md5
    host    <db_name>       postgres        <my_client_machine_ip>/32       md5
    
    • 3

相关问题

  • 我可以在使用数据库后激活 PITR 吗?

  • 运行时间偏移延迟复制的最佳实践

  • 存储过程可以防止 SQL 注入吗?

  • PostgreSQL 中 UniProt 的生物序列

  • PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

Sidebar

Stats

  • 问题 199037
  • 回答 263511
  • 最佳答案 131755
  • 用户 66345
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve